Status: Accepted
Owner: [email protected]
CC: [email protected],  [email protected],  [email protected]
Labels: Type-Bug Priority-High OS-All

New issue 1821 by [email protected]: Race condition in Genesis::InstallExtension when two Contexts are created in parallel on different threads
http://code.google.com/p/v8/issues/detail?id=1821

I'm getting "Circular extension dependency" failure in Genesis::InstallExtension when two dedicated web workers are trying to start in parallel on two threads. It looks like the problem is that the list of RegisteredExtension is static and two two threads are concurrently modifying ExtensionTraversalStates when trying to install extensions in parallel.

Chromium stack trace I get is:

CONSOLE MESSAGE: line 20: Received message from worker 1
        base::debug::StackTrace::StackTrace() [0x8c31ae]
        base::(anonymous namespace)::StackDumpSignalHandler() [0x8ac439]
        0x7fa25e0dcaf0
        WebCore::reportFatalErrorInV8() [0xbdb694]
        v8::Utils::ReportApiFailure() [0x4c1e56]
        v8::internal::Genesis::InstallExtension() [0x4e3cfc]
        v8::internal::Bootstrapper::InstallExtensions() [0x4e4048]
        v8::internal::Bootstrapper::CreateEnvironment() [0x4e6466]
        v8::Context::New() [0x4d78cc]
        WebCore::WorkerContextExecutionProxy::initContextIfNeeded() [0xbdb7c9]
        WebCore::WorkerContextExecutionProxy::evaluate() [0xbdbc20]
        WebCore::WorkerScriptController::evaluate() [0xbdc165]
        WebCore::WorkerScriptController::evaluate() [0xbdc32b]
        WebCore::WorkerThread::workerThread() [0xe3c328]
        start_thread [0x7fa25f44e9ca]
        0x7fa25e18f70d

Debug print in reportFatalErrorInV8 reveals this:


reportFatalErrorInV8 location = v8::Context::New() message = "Circular extension dependency"


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to