// FIXME: Randomize where this goes.
// https://bugs.webkit.org/show_bug.cgi?id=175245
void* base = tryVMAllocate(maxAlignment, totalSize);
if (!base) {
if (GIGACAGE_ALLOCATION_CAN_FAIL) return; fprintf(stderr, "FATAL: Could not allocate gigacage memory with maxAlignment = %lu, totalSize = %lu.\n", maxAlignment, totalSize); BCRASH();
}
So tryVMAllocate fails. That means bmalloc was unable to allocate virtual memory. That's not supposed to fail (obviously). Implementation is here:
The failure occurs here:
// FIXME: Randomize where this goes. /bugs.webkit. org/show_ bug.cgi? id=175245 maxAlignment, totalSize); ALLOCATION_ CAN_FAIL)
return;
fprintf( stderr, "FATAL: Could not allocate gigacage memory with maxAlignment = %lu, totalSize = %lu.\n", maxAlignment, totalSize);
BCRASH( );
// https:/
void* base = tryVMAllocate(
if (!base) {
if (GIGACAGE_
}
So tryVMAllocate fails. That means bmalloc was unable to allocate virtual memory. That's not supposed to fail (obviously). Implementation is here:
inline void* tryVMAllocate( size_t vmSize) vmSize) ;
{
vmValidate(
void* result = mmap(0, vmSize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | BMALLOC_NORESERVE, BMALLOC_VM_TAG, 0);
if (result == MAP_FAILED)
return nullptr;
return result;
}
So the problem boils down to this mmap call. It's very strange that this is only happening with Deja Dup. Other applications are unaffected?