[Webkit-unassigned] [Bug 83195] New: Assertion reloading an inspected page if the page uses workers

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Apr 4 13:14:13 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=83195

           Summary: Assertion reloading an inspected page if the page uses
                    workers
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Keywords: InRadar
          Severity: Normal
          Priority: P2
         Component: Web Inspector
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: simon.fraser at apple.com
                CC: timothy at apple.com, pfeldman at chromium.org


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.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list