Hi v8-users,

It appears that in some cases V8 will abort the process when it runs out of
heap space rather than throw a JS exception. The behavior can be overridden
by registering an OOM callback, but if that callback returns without
aborting, it seems V8 promptly crashes.

It seems like some code paths are designed to handle OOM gracefully, but
others aren't.

For my use case, it's pretty important that a malicious script cannot cause
the process to abort, since our processes are multi-tenant. Ideally OOM
would throw an exception, but terminating the isolate is also acceptable,
as long as other isolates can keep going.

Is there any way to accomplish this?

For example, what if I compile with C++ exceptions enabled, and have my OOM
handler throw an exception, hence unwinding the stack back to where I
entered V8. Then, I promptly destroy the isolate. Would that work?

Or, is there some trick to making V8 less crashy on OOM, aside from going
through and fixing all the code paths that crash (which probably isn't
feasible for me)?

Thanks,
-Kenton

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to