[WK2] ASSERTION FAILED: m_loadState == LoadStateProvisional when receiving multipart/x-mixed-replace data
https://bugs.webkit.org/show_bug.cgi?id=81365
Summary [WK2] ASSERTION FAILED: m_loadState == LoadStateProvisional when receiving mu...
Jessie Berlin
Reported 2012-03-16 10:09:51 PDT
void WebFrameProxy::didCommitLoad(const String& contentType, const PlatformCertificateInfo& certificateInfo) { ASSERT(m_loadState == LoadStateProvisional); m_loadState = LoadStateCommitted; m_url = m_provisionalURL; m_provisionalURL = String(); m_title = String(); m_MIMEType = contentType; m_isFrameSet = false; m_certificateInfo = WebCertificateInfo::create(certificateInfo); } http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110947%20(4990)/http/tests/multipart/load-last-non-html-frame-crash-log.txt http://build.webkit.org/results/Lion%20Intel%20Debug%20(WebKit2%20Tests)/r110947%20(4990)/fast/loader/reload-zero-byte-plugin-crash-log.txt Note: NRWT is probably not associating the correct tests with these "crashes" (see https://bugs.webkit.org/show_bug.cgi?id=71380). I have run into this locally as well, but have not been able to figure out which tests it is happening for. Process: WebKitTestRunner [38363] Path: /Volumes/VOLUME/*/WebKitTestRunner Identifier: WebKitTestRunner Version: ??? (???) Code Type: X86-64 (Native) Parent Process: Python [38336] Date/Time: 2012-03-15 23:35:20.866 -0700 OS Version: Mac OS X 10.7.3 (11D50) Report Version: 9 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x00000000bbadbeef VM Regions Near 0xbbadbeef: --> __TEXT 00000001059d5000-00000001059eb000 [ 88K] r-x/rwx SM=COW /Volumes/VOLUME/* Application Specific Information: objc[38363]: garbage collection is OFF Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.WebKit2 0x0000000105bfee7b WebKit::WebFrameProxy::didCommitLoad(WTF::String const&, WebKit::PlatformCertificateInfo const&) + 107 (WebFrameProxy.cpp:164) 1 com.apple.WebKit2 0x0000000105c86a6e WebKit::WebPageProxy::didCommitLoadForFrame(unsigned long long, WTF::String const&, bool, WebKit::PlatformCertificateInfo const&, CoreIPC::ArgumentDecoder*) + 398 (WebPageProxy.cpp:1827) 2 com.apple.WebKit2 0x0000000105cdee6e void CoreIPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, WTF::String const&, bool, WebKit::PlatformCertificateInfo const&, CoreIPC::ArgumentDecoder*), unsigned long long, WTF::String, bool, WebKit::PlatformCertificateInfo>(CoreIPC::Arguments4<unsigned long long, WTF::String, bool, WebKit::PlatformCertificateInfo> const&, CoreIPC::ArgumentDecoder*, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, WTF::String const&, bool, WebKit::PlatformCertificateInfo const&, CoreIPC::ArgumentDecoder*)) + 206 (HandleMessage.h:248) 3 com.apple.WebKit2 0x0000000105cd009e void CoreIPC::handleMessageVariadic<Messages::WebPageProxy::DidCommitLoadForFrame, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, WTF::String const&, bool, WebKit::PlatformCertificateInfo const&, CoreIPC::ArgumentDecoder*)>(CoreIPC::ArgumentDecoder*, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, WTF::String const&, bool, WebKit::PlatformCertificateInfo const&, CoreIPC::ArgumentDecoder*)) + 126 (HandleMessage.h:327) 4 com.apple.WebKit2 0x0000000105ccc7dc WebKit::WebPageProxy::didReceiveWebPageProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 2476 (WebPageProxyMessageReceiver.cpp:231) 5 com.apple.WebKit2 0x0000000105c8512f WebKit::WebPageProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 271 (WebPageProxy.cpp:1615) 6 com.apple.WebKit2 0x0000000105d206d6 WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 438 (WebProcessProxy.cpp:332) 7 com.apple.WebKit2 0x0000000105b9a855 WebKit::WebConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 405 (WebConnectionToWebProcess.cpp:93) 8 com.apple.WebKit2 0x0000000105b9a89d non-virtual thunk to WebKit::WebConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*) + 61 9 com.apple.WebKit2 0x0000000105a35e4c CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message<CoreIPC::ArgumentDecoder>&) + 428 (Connection.cpp:692) 10 com.apple.WebKit2 0x0000000105a389a3 CoreIPC::Connection::dispatchMessages() + 211 (Connection.cpp:720) 11 com.apple.WebKit2 0x0000000105a3fab0 WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>::operator()(CoreIPC::Connection*) + 112 (Functional.h:173) 12 com.apple.WebKit2 0x0000000105a3fa35 WTF::BoundFunctionImpl<WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>, void ()(CoreIPC::Connection*)>::operator()() + 53 (Functional.h:373) 13 com.apple.WebCore 0x000000010909295d WTF::Function<void ()()>::operator()() const + 141 (Functional.h:581) 14 com.apple.WebCore 0x00000001090926e3 WebCore::RunLoop::performWork() + 147 (RunLoop.cpp:66) 15 com.apple.WebCore 0x0000000109093b00 WebCore::RunLoop::performWork(void*) + 96 (RunLoopMac.mm:65) 16 com.apple.CoreFoundation 0x00007fff907706e1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 17 com.apple.CoreFoundation 0x00007fff9076ff4d __CFRunLoopDoSources0 + 253 18 com.apple.CoreFoundation 0x00007fff90796d39 __CFRunLoopRun + 905 19 com.apple.CoreFoundation 0x00007fff90796676 CFRunLoopRunSpecific + 230 20 com.apple.Foundation 0x00007fff956cdf9f -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 267 21 WebKitTestRunner 0x00000001059dfdcc WTR::TestController::platformRunUntil(bool&, double) + 204 (TestControllerMac.mm:60) 22 WebKitTestRunner 0x00000001059db6e5 WTR::TestController::runUntil(bool&, WTR::TestController::TimeoutDuration) + 149 (TestController.cpp:564) 23 WebKitTestRunner 0x00000001059e0b54 WTR::TestInvocation::invoke() + 1396 (TestInvocation.cpp:171) 24 WebKitTestRunner 0x00000001059dbd68 WTR::TestController::runTest(char const*) + 1656 (TestController.cpp:514) 25 WebKitTestRunner 0x00000001059dbe72 WTR::TestController::runTestingServerLoop() + 178 (TestController.cpp:530) 26 WebKitTestRunner 0x00000001059da4e0 WTR::TestController::run() + 48 (TestController.cpp:538) 27 WebKitTestRunner 0x00000001059d91a6 WTR::TestController::TestController(int, char const**) + 614 (TestController.cpp:88) 28 WebKitTestRunner 0x00000001059d8f33 WTR::TestController::TestController(int, char const**) + 35 (TestController.cpp:89) 29 WebKitTestRunner 0x00000001059d6e8f main + 143 (main.mm:36) 30 WebKitTestRunner 0x00000001059d6df4 start + 52
Attachments
Radar WebKit Bug Importer
Comment 1 2012-03-16 10:10:47 PDT
Alexey Proskuryakov
Comment 2 2012-03-16 17:06:53 PDT
Can reproduce with http/tests/multipart/load-last-non-html-frame.php in both run-webkit-tests and Safari. The issue here is that WebKit 2 doesn't implement FrameLoaderClient::revertToProvisionalState at all.
Alexey Proskuryakov
Comment 3 2012-03-19 10:38:00 PDT
Skipped in http://trac.webkit.org/changeset/111201 It's just something that needs to be properly implemented in WK2. Another test affected by this was already in WK2 skipped list, http/tests/multipart/multipart-wait-before-boundary.html.
Alexey Proskuryakov
Comment 4 2014-12-01 13:11:04 PST
FrameLoaderClient::revertToProvisionalState is still not implemented, and the assertion is still present (it is now in FrameLoadState::didCommitLoad()), but somehow, it doesn't seem to be hit on the tests.
Note You need to log in before you can comment on or make changes to this bug.