Updates:
Cc: [email protected]
Labels: HW-x64
Comment #3 on issue 2473 by [email protected]:
http://www.chaostoperfection.com/ crashes in V8 initialization on 64-bit
platforms
http://code.google.com/p/v8/issues/detail?id=2473
Here is my analysis so far: For this web site, one process uses several
threads, each one using a separate v8 Isolate (probably for web workers).
On x64, the initialization of each Isolate contains the reservation of a
512MB region of memory where will generate code later:
mmap(OS::GetRandomMmapAddr(), size,
PROT_NONE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE,
-1, 0);
Later we will commit chunks of such a region via:
mmap(base, size,
PROT_READ | PROT_WRITE | PROT_EXEC,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED,
-1, 0)
But for the 10th Isolate within a process, the reservation already fails.
It seems like there is some artificial limit for the reserved regions when
the sandbox is active. Does somebody know if this is really the case? And
if yes, how can we work around this?
The reported error/assertion within v8 is somewhat less than perfect, we
could do better, but this would not solve the underlying problem.
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev