Bug 139260

Summary: REGRESSION (r173468): Cannot step in WebInspector
Product: WebKit Reporter: Antti Koivisto <koivisto>
Component: Page LoadingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, commit-queue, joepeck, mark.lam
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch
ap: review+
alternative patch
none
updated alternative patch none

Description Antti Koivisto 2014-12-04 10:51:51 PST
1 com.apple.JavaScriptCore       0x10e31846e WTFCrash + 0x3e
>  2 com.apple.WebCore              0x10e8c9de6 WebCore::DocumentWriter::addData(char const*, unsigned long) + 0x36
   3 com.apple.WebCore              0x10e8347f8 WebCore::DocumentLoader::commitData(char const*, unsigned long) + 0x38
   4 com.apple.WebKit               0x10d99a1fd WebKit::WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 0x41
   5 com.apple.WebCore              0x10e8d908f WebCore::DocumentLoader::commitLoad(char const*, int) + 0x8f
   6 com.apple.WebCore              0x10e8d8c7d WebCore::DocumentLoader::dataReceived(WebCore::CachedResource*, char const*, int) + 0x19d
   7 com.apple.WebCore              0x10e8d8901 WebCore::CachedRawResource::notifyClientsDataWasReceived(char const*, unsigned int) + 0xb1
   8 com.apple.WebCore              0x10e8d84da WebCore::CachedRawResource::addDataBuffer(WebCore::ResourceBuffer*) + 0xaa
   9 com.apple.WebCore              0x10e8d8172 WebCore::SubresourceLoader::didReceiveDataOrBuffer(char const*, int, WTF::PassRefPtr<WebCore::SharedBuffer>, long long, WebCore::DataPayloadType) + 0xd2
  10 com.apple.WebCore              0x10f53df03 WebCore::SubresourceLoader::didReceiveData(char const*, unsigned int, long long, WebCore::DataPayloadType) + 0x23
  11 com.apple.WebKit               0x10db7118e WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection*, IPC::MessageDecoder&) + 0x226
  12 com.apple.WebKit               0x10da1e024 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >) + 0x5e
  13 com.apple.WebKit               0x10da2019c IPC::Connection::dispatchOneMessage() + 0x72
  14 com.apple.JavaScriptCore       0x10e633b67 WTF::RunLoop::performWork() + 0x1a7
  15 com.apple.JavaScriptCore       0x10e634232 WTF::RunLoop::performWork(void*) + 0x22
  16 com.apple.CoreFoundation       0x7fff8fc57461 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 0x11
  17 com.apple.CoreFoundation       0x7fff8fc495ed __CFRunLoopDoSources0 + 0x10d
  18 com.apple.CoreFoundation       0x7fff8fc48c1f __CFRunLoopRun + 0x39f
  19 com.apple.CoreFoundation       0x7fff8fc48638 CFRunLoopRunSpecific + 0x128
  20 com.apple.HIToolbox            0x7fff8a44c7ff RunCurrentEventLoopInMode + 0xeb
  21 com.apple.HIToolbox            0x7fff8a44c47e ReceiveNextEventCommon + 0xb3
  22 com.apple.HIToolbox            0x7fff8a44c3bb _BlockUntilNextEventMatchingListInModeWithFilter + 0x47
  23 com.apple.AppKit               0x7fff88b182d1 _DPSNextEvent + 0x3c4
  24 com.apple.AppKit               0x7fff88b17a80 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 0xc2
  25 com.apple.WebCore              0x10ed8ffba WebCore::EventLoop::cycle() + 0x6a
  26 com.apple.WebCore              0x10f3d0768 WebCore::PageScriptDebugServer::runEventLoopWhilePaused() + 0x38
  27 com.apple.JavaScriptCore       0x10e5ef4fb Inspector::ScriptDebugServer::handlePause(JSC::Debugger::ReasonForPause, JSC::JSGlobalObject*) + 0xfb
  28 com.apple.JavaScriptCore       0x10e37e169 JSC::Debugger::pauseIfNeeded(JSC::ExecState*) + 0x149
  29 com.apple.JavaScriptCore       0x10e37e4b2 JSC::Debugger::atStatement(JSC::ExecState*) + 0x42
  30 com.apple.JavaScriptCore       0x10e32a585 llint_slow_path_debug + 0x45
  31 com.apple.JavaScriptCore       0x10e57c1ad llint_entry + 0x5cb5
  32 com.apple.JavaScriptCore       0x10e5762e8 vmEntryToJavaScript + 0x146
  33 com.apple.JavaScriptCore       0x10e4e9379 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 0xa9
  34 com.apple.JavaScriptCore       0x10e16853d JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 0x22ed
  35 com.apple.JavaScriptCore       0x10e166154 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, JSC::JSValue*) + 0x1e4
  36 com.apple.WebCore              0x10f4974f9 WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&) + 0x139
  37 com.apple.WebCore              0x10e8e23d9 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&) + 0x29
  38 com.apple.WebCore              0x10e8e227a WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) + 0x12a
  39 com.apple.WebCore              0x10e8e17a2 WebCore::ScriptElement::prepareScript(WTF::TextPosition const&, WebCore::ScriptElement::LegacyTypeSupport) + 0x3b2
  40 com.apple.WebCore              0x10e8e0865 WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&) + 0x165
  41 com.apple.WebCore              0x10e8e0690 WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr<WebCore::Element>, WTF::TextPosition const&) + 0x30
  42 com.apple.WebCore              0x10e8e05e4 WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() + 0x54
  43 com.apple.WebCore              0x10e842c5d WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&) + 0x5d
  44 com.apple.WebCore              0x10e841d6e WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 0x1de
  45 com.apple.WebCore              0x10e8dbffd WebCore::HTMLDocumentParser::append(WTF::PassRefPtr<WTF::StringImpl>) + 0x1cd
  46 com.apple.WebCore              0x10ecb63cc WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&) + 0x5c
  47 com.apple.WebCore              0x10e84093a WebCore::DocumentWriter::end() + 0x2a
  48 com.apple.WebCore              0x10e831c25 WebCore::DocumentLoader::finishedLoading(double) + 0x1d5
  49 com.apple.WebCore              0x10e8f9bfa WebCore::CachedResource::checkNotify() + 0xaa
  50 com.apple.WebCore              0x10e8f9aa6 WebCore::CachedRawResource::finishLoading(WebCore::ResourceBuffer*) + 0xe6
  51 com.apple.WebCore              0x10e8f992c WebCore::SubresourceLoader::didFinishLoading(double) + 0x5c
  52 com.apple.WebKit               0x10db711f4 WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection*, IPC::MessageDecoder&) + 0x28c
  53 com.apple.WebKit               0x10da1e024 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >) + 0x5e
  54 com.apple.WebKit               0x10da2019c IPC::Connection::dispatchOneMessage() + 0x72
  55 com.apple.JavaScriptCore       0x10e633d12 WTF::RunLoop::performWork() + 0x352
  56 com.apple.JavaScriptCore       0x10e634232 WTF::RunLoop::performWork(void*) + 0x22
  57 com.apple.CoreFoundation       0x7fff8fc57461 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 0x11
  58 com.apple.CoreFoundation       0x7fff8fc495ed __CFRunLoopDoSources0 + 0x10d
  59 com.apple.CoreFoundation       0x7fff8fc48c1f __CFRunLoopRun + 0x39f
  60 com.apple.CoreFoundation       0x7fff8fc48638 CFRunLoopRunSpecific + 0x128
  61 com.apple.HIToolbox            0x7fff8a44c7ff RunCurrentEventLoopInMode + 0xeb
  62 com.apple.HIToolbox            0x7fff8a44c57a ReceiveNextEventCommon + 0x1af
  63 com.apple.HIToolbox            0x7fff8a44c3bb _BlockUntilNextEventMatchingListInModeWithFilter + 0x47
  64 com.apple.AppKit               0x7fff88b182d1 _DPSNextEvent + 0x3c4
  65 com.apple.AppKit               0x7fff88b17a80 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 0xc2
  66 com.apple.AppKit               0x7fff88b0ba33 -[NSApplication run] + 0x252
  67 com.apple.AppKit               0x7fff88af6eb4 NSApplicationMain + 0x728
  68 libxpc.dylib                   0x7fff8a90def2 _xpc_objc_main + 0x319
  69 libxpc.dylib                   0x7fff8a90fa9d xpc_main + 0x1ea
  70 com.apple.WebKit.WebContent.Development 0x0000000106caf620 0x106cae000 + 5664
  71 libdyld.dylib                  0x7fff907195c9 start + 0x1
Comment 1 Antti Koivisto 2014-12-04 11:13:22 PST
rdar://problem/18431960
Comment 2 Antti Koivisto 2014-12-04 11:22:01 PST
Created attachment 242577 [details]
patch
Comment 3 Joseph Pecoraro 2014-12-04 11:30:44 PST
Comment on attachment 242577 [details]
patch

Looks fine to me. Someone more familiar with NetworkResourceLoader should do a final review (and I am not a WebKit2 Owner).
Comment 4 Alexey Proskuryakov 2014-12-04 11:37:45 PST
Comment on attachment 242577 [details]
patch

r=me

Alternatively, could we remove the loader from NetworkConnectionToWebProcess::m_networkResourceLoaders earlier? I think that this would be more robust, and having less state to track is always better. We don't want any IPC messages to be delivered to the loader after cleanup(), not just setDefersLoading.
Comment 5 Antti Koivisto 2014-12-04 11:43:43 PST
Yeah, good idea. Let's see...
Comment 6 Antti Koivisto 2014-12-04 12:43:53 PST
Created attachment 242581 [details]
alternative patch
Comment 7 Antti Koivisto 2014-12-04 12:58:32 PST
Created attachment 242583 [details]
updated alternative patch
Comment 8 WebKit Commit Bot 2014-12-04 14:47:55 PST
Comment on attachment 242583 [details]
updated alternative patch

Clearing flags on attachment: 242583

Committed r176818: <http://trac.webkit.org/changeset/176818>
Comment 9 WebKit Commit Bot 2014-12-04 14:47:59 PST
All reviewed patches have been landed.  Closing bug.