Bug 140421

Summary: ASSERTION FAILED: m_uncommittedState.state == State::Committed when quickly navigating back/forward
Product: WebKit Reporter: Joseph Pecoraro <joepeck>
Component: Page LoadingAssignee: Hyungwook Lee <hyungwook.lee>
Status: NEW ---    
Severity: Normal CC: andersca, ap, beidson, buildbot, cdumez, commit-queue, dbates, hyungwook.lee, japhet, joepeck, mitz, rniwa, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
darin: review-, buildbot: commit-queue-
Archive of layout-test-results from ews101 for mac-yosemite
none
Archive of layout-test-results from ews106 for mac-yosemite-wk2
none
Archive of layout-test-results from ews113 for mac-yosemite
none
Archive of layout-test-results from ews122 for ios-simulator-wk2 none

Description Joseph Pecoraro 2015-01-13 17:49:55 PST
* SUMMARY
Assertion when quickly navigating back/forward.

* STEPS TO REPRODUCE
1. Load <http://daringfireball.net>
2. Click a link to any article (off site)
3. Rapidly go back/forward
  => ASSERT eventually

ASSERTION FAILED: m_uncommittedState.state == State::Committed
Source/WebKit2/UIProcess/PageLoadState.cpp(289) : void WebKit::PageLoadState::didFinishLoad(const Transaction::Token &)
1   0x10b270e00 WTFCrash
2   0x10d241d43 WebKit::PageLoadState::didFinishLoad(WebKit::PageLoadState::Transaction::Token const&)
3   0x10d6f2624 WebKit::WebPageProxy::didFinishLoadForFrame(unsigned long long, unsigned long long, WebKit::UserData const&)
4   0x10d78f069 void IPC::callMemberFunctionImpl<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WebKit::UserData>, 0ul, 1ul, 2ul>(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WebKit::UserData>&&, std::index_sequence<0ul, 1ul, 2ul>)
5   0x10d78eea8 void IPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WebKit::UserData>, std::make_index_sequence<3ul> >(std::__1::tuple<unsigned long long, unsigned long long, WebKit::UserData>&&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebKit::UserData const&))
6   0x10d76e696 void IPC::handleMessage<Messages::WebPageProxy::DidFinishLoadForFrame, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebKit::UserData const&)>(IPC::MessageDecoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, unsigned long long, WebKit::UserData const&))
7   0x10d765df2 WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
8   0x10d768c77 non-virtual thunk to WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
9   0x10d17f48d IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&)
10  0x10d04c897 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&, IPC::MessageDecoder&)
11  0x10d83779a WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
12  0x10d837897 non-virtual thunk to WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&)
13  0x10d059063 IPC::Connection::dispatchMessage(IPC::MessageDecoder&)
14  0x10d051040 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::MessageDecoder, std::__1::default_delete<IPC::MessageDecoder> >)
15  0x10d058e3f IPC::Connection::dispatchOneMessage()
16  0x10d06dca2 WTF::FunctionWrapper<void (IPC::Connection::*)()>::operator()(IPC::Connection*)
17  0x10d06dc25 WTF::BoundFunctionImpl<WTF::FunctionWrapper<void (IPC::Connection::*)()>, void (IPC::Connection*)>::operator()()
18  0x10d06d122 WTF::Function<void ()>::operator()() const
19  0x10d06d09c std::__1::__function::__func<WTF::Function<void ()>, std::__1::allocator<WTF::Function<void ()> >, void ()>::operator()()
20  0x10b21d3ca std::__1::function<void ()>::operator()() const
21  0x10b2aac42 WTF::RunLoop::performWork()
22  0x10b2ac054 WTF::RunLoop::performWork(void*)
23  0x7fff87d14381 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
24  0x7fff87d0650d __CFRunLoopDoSources0
25  0x7fff87d05b3f __CFRunLoopRun
26  0x7fff87d05558 CFRunLoopRunSpecific
27  0x7fff8d139b4f RunCurrentEventLoopInMode
28  0x7fff8d1398ca ReceiveNextEventCommon
29  0x7fff8d13970b _BlockUntilNextEventMatchingListInModeWithFilter
30  0x7fff8e77c0ad _DPSNextEvent
31  0x7fff8e77b6b0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
Comment 1 Alexey Proskuryakov 2015-01-14 23:36:25 PST
Seems like a good thing to fix, who knows what the consequences of an incorrect PageLoadState are.
Comment 2 Hyungwook Lee 2015-02-03 06:49:01 PST
I've start to look at this issue.
Comment 3 Hyungwook Lee 2015-02-09 06:17:19 PST
I'm not able to reproduce this issue in my system(OSX 10.8.5) until now.
Comment 4 Hyungwook Lee 2015-07-27 01:09:14 PDT
Created attachment 257552 [details]
Patch
Comment 5 Brady Eidson 2015-07-27 16:12:36 PDT
Comment on attachment 257552 [details]
Patch

This feels like a much larger change that the diff might suggest.

Do all the tests pass in WK2 and Mac WK1?

Is a test for the failure not possible?
Comment 6 Hyungwook Lee 2015-07-27 22:21:30 PDT
I've (In reply to comment #5)
> Comment on attachment 257552 [details]
> Patch
> 
> This feels like a much larger change that the diff might suggest.
> 
> Do all the tests pass in WK2 and Mac WK1?
> 
> Is a test for the failure not possible?

I've tested this patch in WK2 GTK port.
There is no any other regression in WK2 GTK port.
Comment 7 Darin Adler 2015-08-09 17:56:46 PDT
Comment on attachment 257552 [details]
Patch

Could you please add a regression test for this?
Comment 8 Brent Fulgham 2016-03-10 10:26:30 PST
Comment on attachment 257552 [details]
Patch

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

> Source/WebCore/ChangeLog:9
> +        provisitonal item in history when we load page from page cache.

"provisional"
Comment 9 Hyungwook Lee 2016-04-12 23:49:45 PDT
Created attachment 276306 [details]
Patch
Comment 10 Hyungwook Lee 2016-04-12 23:50:24 PDT
(In reply to comment #8)
> Comment on attachment 257552 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=257552&action=review
> 
> > Source/WebCore/ChangeLog:9
> > +        provisitonal item in history when we load page from page cache.
> 
> "provisional"

Done
Comment 11 Build Bot 2016-04-13 00:34:41 PDT
Comment on attachment 276306 [details]
Patch

Attachment 276306 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/1146974

New failing tests:
http/tests/loading/main-resource-delegates-on-back-navigation.html
Comment 12 Build Bot 2016-04-13 00:34:47 PDT
Created attachment 276309 [details]
Archive of layout-test-results from ews101 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews101  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 13 Build Bot 2016-04-13 00:37:38 PDT
Comment on attachment 276306 [details]
Patch

Attachment 276306 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1146982

New failing tests:
http/tests/loading/main-resource-delegates-on-back-navigation.html
Comment 14 Build Bot 2016-04-13 00:37:43 PDT
Created attachment 276310 [details]
Archive of layout-test-results from ews106 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5
Comment 15 Build Bot 2016-04-13 00:46:46 PDT
Comment on attachment 276306 [details]
Patch

Attachment 276306 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1146985

New failing tests:
http/tests/loading/main-resource-delegates-on-back-navigation.html
Comment 16 Build Bot 2016-04-13 00:46:50 PDT
Created attachment 276311 [details]
Archive of layout-test-results from ews113 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 17 Build Bot 2016-04-13 00:51:49 PDT
Comment on attachment 276306 [details]
Patch

Attachment 276306 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1146988

New failing tests:
http/tests/loading/main-resource-delegates-on-back-navigation.html
Comment 18 Build Bot 2016-04-13 00:51:53 PDT
Created attachment 276312 [details]
Archive of layout-test-results from ews122 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews122  Port: ios-simulator-wk2  Platform: Mac OS X 10.10.5
Comment 19 Darin Adler 2016-04-13 08:47:05 PDT
Comment on attachment 276306 [details]
Patch

This patch is causing the http/tests/loading/main-resource-delegates-on-back-navigation.html to fail. Please run the test locally and figure out why it’s failing.
Comment 20 Hyungwook Lee 2016-04-13 22:15:12 PDT
(In reply to comment #19)
> Comment on attachment 276306 [details]
> Patch
> 
> This patch is causing the
> http/tests/loading/main-resource-delegates-on-back-navigation.html to fail.
> Please run the test locally and figure out why it’s failing.

Sure, I will investigate it.
Comment 21 Radar WebKit Bug Importer 2019-08-27 23:13:26 PDT
<rdar://problem/54779098>