RESOLVED WORKSFORME 15183
Reproducible assertion failure in XMLHttpRequest::didFinishLoading (loader == m_loader)
https://bugs.webkit.org/show_bug.cgi?id=15183
Summary Reproducible assertion failure in XMLHttpRequest::didFinishLoading (loader ==...
mitz
Reported 2007-09-11 13:25:21 PDT
To reproduce: Open the URL and when it finishes loading, close the browser window. Result: ASSERTION FAILED: loader == m_loader (WebCore/xml/XMLHttpRequest.cpp:646 virtual void WebCore::XMLHttpRequest::didFinishLoading(WebCore::SubresourceLoader*))
Attachments
mitz
Comment 1 2007-09-11 13:27:23 PDT
Backtrace: 0 com.apple.WebCore 0x021143a8 WebCore::XMLHttpRequest::didFinishLoading(WebCore::SubresourceLoader*) + 132 (XMLHttpRequest.cpp:646) 1 com.apple.WebCore 0x02111fa0 WebCore::XMLHttpRequest::didFail(WebCore::SubresourceLoader*, WebCore::ResourceError const&) + 64 (XMLHttpRequest.cpp:638) 2 com.apple.WebCore 0x01ff9708 WebCore::SubresourceLoader::didFail(WebCore::ResourceError const&) + 208 (SubresourceLoader.cpp:213) 3 com.apple.WebCore 0x01ff8668 WebCore::ResourceLoader::load(WebCore::ResourceRequest const&) + 496 (ResourceLoader.cpp:115) 4 com.apple.WebCore 0x01ff9af8 WebCore::SubresourceLoader::load(WebCore::ResourceRequest const&) + 152 (SubresourceLoader.cpp:82) 5 com.apple.WebCore 0x01ff9e8c WebCore::SubresourceLoader::create(WebCore::Frame*, WebCore::SubresourceLoaderClient*, WebCore::ResourceRequest const&, bool, bool, bool) + 884 (SubresourceLoader.cpp:122) 6 com.apple.WebCore 0x021150dc WebCore::XMLHttpRequest::send(WebCore::String const&, int&) + 2040 (XMLHttpRequest.cpp:461) 7 com.apple.WebCore 0x01d18108 KJS::JSXMLHttpRequestPrototypeFunction::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 2036 (JSXMLHttpRequest.cpp:275) 8 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 9 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 10 com.apple.JavaScriptCore 0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216 11 com.apple.JavaScriptCore 0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620 12 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 13 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 14 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 15 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 16 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 17 com.apple.JavaScriptCore 0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216 18 com.apple.JavaScriptCore 0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280 19 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 20 com.apple.JavaScriptCore 0x004f19d4 KJS::IfNode::execute(KJS::ExecState*) + 500 21 com.apple.JavaScriptCore 0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620 22 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 23 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 24 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 25 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 26 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 27 com.apple.JavaScriptCore 0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216 28 com.apple.JavaScriptCore 0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620 29 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 30 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 31 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 32 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 33 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 34 com.apple.JavaScriptCore 0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216 35 com.apple.JavaScriptCore 0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620 36 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 37 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 38 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 39 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 40 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 41 com.apple.JavaScriptCore 0x004f218c KJS::ReturnNode::execute(KJS::ExecState*) + 380 42 com.apple.JavaScriptCore 0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620 43 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 44 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 45 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 46 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 47 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 48 com.apple.JavaScriptCore 0x004f218c KJS::ReturnNode::execute(KJS::ExecState*) + 380 49 com.apple.JavaScriptCore 0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280 50 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 51 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 52 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 53 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 54 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 55 com.apple.JavaScriptCore 0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216 56 com.apple.JavaScriptCore 0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280 57 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 58 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 59 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 60 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 61 com.apple.JavaScriptCore 0x005060bc KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) + 988 62 com.apple.JavaScriptCore 0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216 63 com.apple.JavaScriptCore 0x004ee274 KJS::SourceElementsNode::execute(KJS::ExecState*) + 620 64 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 65 com.apple.JavaScriptCore 0x004ee4bc KJS::TryNode::execute(KJS::ExecState*) + 224 66 com.apple.JavaScriptCore 0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280 67 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 68 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 69 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 70 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 71 com.apple.JavaScriptCore 0x00506ff0 KJS::FunctionCallResolveNode::evaluate(KJS::ExecState*) + 788 72 com.apple.JavaScriptCore 0x004f1b4c KJS::ExprStatementNode::execute(KJS::ExecState*) + 216 73 com.apple.JavaScriptCore 0x004ee120 KJS::SourceElementsNode::execute(KJS::ExecState*) + 280 74 com.apple.JavaScriptCore 0x004f1d70 KJS::BlockNode::execute(KJS::ExecState*) + 212 75 com.apple.JavaScriptCore 0x004f2948 KJS::DeclaredFunctionImp::execute(KJS::ExecState*) + 88 76 com.apple.JavaScriptCore 0x004f336c KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 684 77 com.apple.JavaScriptCore 0x004e5d84 KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) + 284 78 com.apple.WebCore 0x01d25e04 WebCore::JSAbstractEventListener::handleEvent(WebCore::Event*, bool) + 756 (kjs_events.cpp:116) 79 com.apple.WebCore 0x01ab8aa4 WebCore::Document::handleWindowEvent(WebCore::Event*, bool) + 412 (Document.cpp:2376) 80 com.apple.WebCore 0x01cc2a90 WebCore::EventTargetNode::dispatchWindowEvent(WebCore::AtomicString const&, bool, bool) + 364 (EventTargetNode.cpp:337) 81 com.apple.WebCore 0x01fe48c4 WebCore::FrameLoader::stopLoading(bool) + 416 (FrameLoader.cpp:579) 82 com.apple.WebCore 0x01fe4cf8 WebCore::FrameLoader::closeURL() + 40 (FrameLoader.cpp:645) 83 com.apple.WebCore 0x01fe4d70 WebCore::FrameLoader::detachFromParent() + 60 (FrameLoader.cpp:3118) 84 com.apple.WebKit 0x00225434 -[WebView(WebPrivate) _close] + 520
David Kilzer (:ddkilzer)
Comment 2 2007-09-11 20:59:58 PDT
David Kilzer (:ddkilzer)
Comment 3 2007-09-12 13:35:39 PDT
I can't get this to reproduce with a debug build of r25517 with Safari 3 Public Beta v. 3.0.3 (522.12.1) on Mac OS X 10.4.10 (8R218). I did notice that there are number of URL "flashes" that show up if the status bar is enabled on Safari. When do I know if the page is loading? Or do I have to close it at just the right time?
David Kilzer (:ddkilzer)
Comment 4 2007-09-12 21:03:45 PDT
(In reply to comment #3) > I did notice that there are number of URL "flashes" that show up if the status > bar is enabled on Safari. When do I know if the page is loading? Or do I have > to close it at just the right time? When do I know if the page is *done* loading?
mitz
Comment 5 2007-09-13 04:03:22 PDT
(In reply to comment #4) > When do I know if the page is *done* loading? By "done loading" I meant when the progress bar in the URL field is gone and the progress indicator in the tab disappears. I am unable to reproduce the bug today. The backtrace makes it seem like it happened when an unload handler sent an XMLHttpRequest, but even when the bug happened I could not follow the JS code that did this.
Note You need to log in before you can comment on or make changes to this bug.