Bug 119915

Summary: REGRESSION(r154144): ASSERTION FAILED: m_history->provisionalItem() == m_requestedHistoryItem.get()
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: Page LoadingAssignee: Alexey Proskuryakov <ap>
Status: RESOLVED FIXED    
Severity: Normal CC: aestes, ap, beidson, commit-queue, darin
Priority: P2 Keywords: Regression
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
proposed fix
darin: review+
patch for landing none

Description Ryosuke Niwa 2013-08-16 14:52:48 PDT
stderr:
ASSERTION FAILED: m_history->provisionalItem() == m_requestedHistoryItem.get()
/Volumes/Data/webkit4/Source/WebCore/loader/FrameLoader.cpp(3233) : void WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad()
1   0x1067f9090 WTFCrash
2   0x107c5c563 WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad()
3   0x107a1a629 WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource*)
4   0x1076d28cd WebCore::CachedResource::checkNotify()
5   0x1076d2a6c WebCore::CachedResource::error(WebCore::CachedResource::Status)
6   0x108c97f67 WebCore::SubresourceLoader::didFail(WebCore::ResourceError const&)
7   0x108ac8355 WebCore::ResourceLoader::didFail(WebCore::ResourceHandle*, WebCore::ResourceError const&)
8   0x108ea2855 -[WebCoreResourceHandleAsDelegate connection:didFailWithError:]
9   0x7fff8e213d88 __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0
10  0x7fff8e213ccc -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]
11  0x7fff8e38aef4 -[NSURLConnectionInternal _withErrorForConnection:]
12  0x7fff922e78d5 ___delegate_didFail_block_invoke_0
13  0x7fff9228854a ___withDelegateAsync_block_invoke_0
14  0x7fff92318f3a __block_global_1
15  0x7fff87b47154 CFArrayApplyFunction
16  0x7fff922792b4 RunloopBlockContext::perform()
17  0x7fff9227918b MultiplexerSource::perform()
18  0x7fff87b28b31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
19  0x7fff87b28455 __CFRunLoopDoSources0
20  0x7fff87b4b7f5 __CFRunLoopRun
21  0x7fff87b4b0e2 CFRunLoopRunSpecific
22  0x7fff8f8faeb4 RunCurrentEventLoopInMode
23  0x7fff8f8fac52 ReceiveNextEventCommon
24  0x7fff8f8faae3 BlockUntilNextEventMatchingListInMode
25  0x7fff8a2dc533 _DPSNextEvent
26  0x7fff8a2dbdf2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
27  0x7fff8a2d31a3 -[NSApplication run]
28  0x108af63d2 WebCore::RunLoop::run()
29  0x104ec7d8a int WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebContentProcessMainDelegate>(int, char**)
30  0x104ec79db WebContentProcessMain
31  0x104bb6d18 WebKit::BootstrapMain(int, char**)
Comment 1 Ryosuke Niwa 2013-08-16 14:53:11 PDT
Tools/Scripts/run-webkit-tests --debug http/tests/navigation/post-frames-goback1.html -2
Comment 2 Ryosuke Niwa 2013-08-16 14:55:22 PDT
Committed r154206: <http://trac.webkit.org/changeset/154206>
Comment 3 Alexey Proskuryakov 2013-08-16 16:56:36 PDT
I have this mostly done. NetworkProcess wasn't managing cache model correctly, so it ended up with no CFNetwork cache.
Comment 4 Alexey Proskuryakov 2013-08-19 09:37:57 PDT
Well, and WebProcess too.
Comment 5 Alexey Proskuryakov 2013-08-19 13:08:59 PDT
Created attachment 209112 [details]
proposed fix

Decided to do a simpler fix.

There are two aspects to dynamically changing cache model:

- Real clients should just set it upfront, changing it after some processes are created is a poorly defined operation. WKContextSetCacheModel currently fails to update cache model in Networking process, and it fails to accurately update cache sizes in WebProcess, especially when running in a non-default session.

- There are three regression tests that attempt to change cache model at runtime, and this is broken for multiple reasons, most notably because this is done in injected bundle, and doesn't update Networking process.

Neither appears important enough to address at the moment. Eventually, we should probably change cache model API to explicitly take a storage session (ditto for cookie accept policy).
Comment 6 Ryosuke Niwa 2013-08-19 13:46:57 PDT
Comment on attachment 209112 [details]
proposed fix

View in context: https://bugs.webkit.org/attachment.cgi?id=209112&action=review

> Tools/ChangeLog:11
> +        the easiest way to get this going to to initialize it to correct value upfront.

typo: to to.
Comment 7 Alexey Proskuryakov 2013-08-19 14:20:47 PDT
This assertion failure could also happen in any process that had cache disabled on purpose, or even when cache was enabled, but couldn't hold the item. Tracking that with bug 120028.
Comment 8 Alexey Proskuryakov 2013-08-19 14:22:21 PDT
Created attachment 209124 [details]
patch for landing
Comment 9 WebKit Commit Bot 2013-08-19 14:53:24 PDT
Comment on attachment 209124 [details]
patch for landing

Clearing flags on attachment: 209124

Committed r154301: <http://trac.webkit.org/changeset/154301>
Comment 10 WebKit Commit Bot 2013-08-19 14:53:27 PDT
All reviewed patches have been landed.  Closing bug.