RESOLVED INVALID 83195
Assertion reloading an inspected page if the page uses workers
https://bugs.webkit.org/show_bug.cgi?id=83195
Summary Assertion reloading an inspected page if the page uses workers
Simon Fraser (smfr)
Reported 2012-04-04 13:14:13 PDT
If you reload a page with the inspector open, and the page uses workers, then JSC asserts (even in release builds): Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.JavaScriptCore 0x000000010dea61eb JSC::Weak<JSC::JSCell>::Weak(JSC::JSGlobalData&, JSC::JSCell*, JSC::WeakHandleOwner*, void*) + 59 1 com.apple.JavaScriptCore 0x000000010dea60f8 JSC::Heap::addFinalizer(JSC::JSCell*, void (*)(JSC::JSCell*)) + 40 2 com.apple.JavaScriptCore 0x000000010de376ac JSC::evaluate(JSC::ExecState*, JSC::ScopeChainNode*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*) + 172 3 com.apple.WebCore 0x000000010e11c339 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld*) + 425 4 com.apple.WebCore 0x000000010e11bf89 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) + 41 5 com.apple.WebCore 0x000000010e5679b2 WebCore::InspectorClient::doDispatchMessageOnFrontendPage(WebCore::Page*, WTF::String const&) + 242 6 com.apple.WebKit2 0x000000010daf7d9e WebKit::WebInspectorClient::sendMessageToFrontend(WTF::String const&) + 58 7 com.apple.WebCore 0x000000010e8d5269 WebCore::InspectorFrontend::Inspector::didDestroyWorker(int) + 617 8 com.apple.WebCore 0x000000010e893533 WebCore::InspectorAgent::didDestroyWorker(long) + 259 9 com.apple.WebCore 0x000000010e448846 WebCore::AbstractWorker::~AbstractWorker() + 38 10 com.apple.WebCore 0x000000010e4484ae WebCore::Worker::~Worker() + 94 11 com.apple.WebCore 0x000000010e448416 WebCore::JSWorkerOwner::finalize(JSC::Handle<JSC::Unknown>, void*) + 166 12 com.apple.JavaScriptCore 0x000000010dd7e549 JSC::HandleHeap::finalizeWeakHandles() + 169 13 com.apple.JavaScriptCore 0x000000010dea5f7d JSC::Heap::collect(JSC::Heap::SweepToggle) + 77 14 com.apple.JavaScriptCore 0x000000010dd7dde8 JSC::DefaultGCActivityCallbackPlatformData::trigger(__CFRunLoopTimer*, void*) + 184 15 com.apple.CoreFoundation 0x00007fff917a9c24 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20 16 com.apple.CoreFoundation 0x00007fff917a9776 __CFRunLoopDoTimer + 534 17 com.apple.CoreFoundation 0x00007fff9178a001 __CFRunLoopRun + 1617 18 com.apple.CoreFoundation 0x00007fff91789676 CFRunLoopRunSpecific + 230 19 com.apple.HIToolbox 0x00007fff9474831f RunCurrentEventLoopInMode + 277 20 com.apple.HIToolbox 0x00007fff9474f5c9 ReceiveNextEventCommon + 355 21 com.apple.HIToolbox 0x00007fff9474f456 BlockUntilNextEventMatchingListInMode + 62 22 com.apple.AppKit 0x00007fff8b4e1f5d _DPSNextEvent + 659 23 com.apple.AppKit 0x00007fff8b4e1861 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135 24 com.apple.AppKit 0x00007fff8b4de19d -[NSApplication run] + 470 25 com.apple.WebCore 0x000000010eb6624f WebCore::RunLoop::run() + 63 26 com.apple.WebKit2 0x000000010db2eeaa WebKit::WebProcessMain(WebKit::CommandLine const&) + 2538 27 com.apple.WebKit2 0x000000010dafa8ef WebKitMain + 285 28 com.apple.WebProcess 0x000000010d9fae5f 0x10d9fa000 + 3679 29 com.apple.WebProcess 0x000000010d9fad7c 0x10d9fa000 + 3452 The problem is that InspectorAgent::didDestroyWorker(long) is causing script to be run while we're inside a GC. That's a big no-no.
Attachments
Simon Fraser (smfr)
Comment 1 2012-04-04 13:14:23 PDT
Brian Burg
Comment 2 2014-08-03 19:19:32 PDT
This code path no longer exists, so closing.
Note You need to log in before you can comment on or make changes to this bug.