I haven't heard of a similar issue so far. If you can't get a stacktrace of
all threads when this happens, you're next best option would be to run with
thread sanitizer support compiled in (requires clang)

On Wed, Feb 3, 2016 at 5:55 AM David Lattimore <[email protected]> wrote:

> My application calls v8::V8::TerminateExecution when some JavaScript has
> been running too long. This works well for the most part, but I have seen
> some cases where TerminateExecution blocks indefinitely while trying to
> lock a mutex. I haven't been able to reproduce this locally, it just
> happens from time to time in a production environment. From looking
> at v8::V8::TerminateExecution, it looks like the only mutex it tries to
> lock is the break_access lock on the Isolate. AFAICS this mutex isn't ever
> held while calling outside of V8 code, so it shouldn't be possible for my
> code to cause V8 to hold the break_access mutex indefinitely. That said, I
> can't see how else it could happen. Of the other threads besides the one
> calling TerminateExecution, the ones that stand out are:
> - One thread in GcEpilogue (waiting to acquire a mutex held by the thread
> calling TerminateExecution)
> - A couple of threads calling v8::Locker::Initialize - although I'm
> pretty sure these are for different isolates.
>
> I can probably work around this by ensuring that I release my own mutex
> before calling v8::V8::TerminateExecution, although this does introduce a
> fairly benign race condition.
>
> My initial instinct was that perhaps GcEpilogue was being called while the
> break_access mutex was held. This would definitely cause what I'm seeing to
> happen. But from my tests and a brief reading of the code, it doesn't seem
> to keep break_access locked while calling GcEpilogue, although I can't be
> completely sure that it doesn't under some circumstances.
>
> Does anyone have any idea what could cause the break_access mutex to be
> held for a long time or indefinitely?
>
> Thanks,
> David
>
> --
> --
> v8-users mailing list
> [email protected]
> 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 [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to