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