Bug 177828 - REGRESSION (r222714): ASSERTION FAILED: m_mainResource->status() == CachedResource::Status::Cached
Summary: REGRESSION (r222714): ASSERTION FAILED: m_mainResource->status() == CachedRes...
Status: RESOLVED CONFIGURATION CHANGED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-10-03 12:07 PDT by Ryan Haddad
Modified: 2018-04-30 18:31 PDT (History)
5 users (show)

See Also:


Attachments
Crash log (91.12 KB, text/plain)
2017-10-03 12:07 PDT, Ryan Haddad
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2017-10-03 12:07:04 PDT
Created attachment 322558 [details]
Crash log

ASSERTION FAILED: m_mainResource->status() == CachedResource::Status::Cached
/Volumes/Data/slave/elcapitan-debug/build/Source/WebCore/loader/DocumentLoader.cpp(685) : void WebCore::DocumentLoader::responseReceived(const WebCore::ResourceResponse &)
1   0x1204a4a40 WTFCrash
2   0x1123fad29 WebCore::DocumentLoader::responseReceived(WebCore::ResourceResponse const&)
3   0x1123fbf90 WebCore::DocumentLoader::responseReceived(WebCore::CachedResource&, WebCore::ResourceResponse const&)
4   0x1123fbfd7 non-virtual thunk to WebCore::DocumentLoader::responseReceived(WebCore::CachedResource&, WebCore::ResourceResponse const&)
5   0x111e6d129 WebCore::CachedRawResource::responseReceived(WebCore::ResourceResponse const&)
6   0x1146d4cc9 WebCore::SubresourceLoader::didReceiveResponse(WebCore::ResourceResponse const&)
7   0x10e39b1a4 WebKit::WebResourceLoader::didReceiveResponse(WebCore::ResourceResponse const&, bool)
8   0x10e39e7ad void IPC::callMemberFunctionImpl<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool), std::__1::tuple<WebCore::ResourceResponse, bool>, 0ul, 1ul>(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool), std::__1::tuple<WebCore::ResourceResponse, bool>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>)
9   0x10e39e578 void IPC::callMemberFunction<WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool), std::__1::tuple<WebCore::ResourceResponse, bool>, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<WebCore::ResourceResponse, bool>&&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool))
10  0x10e39dc4a void IPC::handleMessage<Messages::WebResourceLoader::DidReceiveResponse, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool)>(IPC::Decoder&, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(WebCore::ResourceResponse const&, bool))
11  0x10e39d530 WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&, IPC::Decoder&)
12  0x10db30c9c WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
13  0x10d9113c3 IPC::Connection::dispatchMessage(IPC::Decoder&)
14  0x10d908681 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)
15  0x10d9119cf IPC::Connection::dispatchOneMessage()
16  0x10d9189fd IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()()
17  0x10d91894c WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call()
18  0x1204e273e WTF::Function<void ()>::operator()() const
19  0x120502cbb WTF::RunLoop::performWork()
20  0x1205035a4 WTF::RunLoop::performWork(void*)
21  0x7fff97fa37e1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
22  0x7fff97f82f0c __CFRunLoopDoSources0
23  0x7fff97f8242f __CFRunLoopRun
24  0x7fff97f81e28 CFRunLoopRunSpecific
25  0x7fff8c8fb935 RunCurrentEventLoopInMode
26  0x7fff8c8fb76f ReceiveNextEventCommon
27  0x7fff8c8fb5af _BlockUntilNextEventMatchingListInModeWithFilter
28  0x7fff8d52edf6 _DPSNextEvent
29  0x7fff8d52e226 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:]
30  0x7fff8d522d80 -[NSApplication run]
31  0x7fff8d4ec368 NSApplicationMain
LEAK: 34 WebPageProxy

https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r222778%20(3401)/results.html
Comment 1 Ryan Haddad 2017-10-03 12:08:39 PDT
This crash is seen with http/tests/contentfiltering/load-substitute-data-from-appcache.html

I think this started after https://trac.webkit.org/changeset/222714/webkit
Comment 2 Alex Christensen 2017-10-03 12:41:04 PDT
Jiewen, could you take a look?  You added that assertion.
Comment 3 Jiewen Tan 2017-10-03 12:51:25 PDT
(In reply to Alex Christensen from comment #2)
> Jiewen, could you take a look?  You added that assertion.

As far as I can recall why this is an assertion and not a condition is that we assume m_identifierForLoadWithoutResourceLoader can serve the same purpose as the assertion. Apparently, it cannot for this case. I cannot tell at this moment if there is a bug that breaks our assumption, or the assumption itself is bogus. Andy, any insights?
Comment 4 Radar WebKit Bug Importer 2017-10-03 12:52:54 PDT
<rdar://problem/34796837>
Comment 5 Ryan Haddad 2017-10-27 13:10:14 PDT
Skipped the two tests that hit this crash in https://trac.webkit.org/r224126. Can we please look in to this soon?
Comment 6 Jiewen Tan 2018-04-30 18:26:59 PDT
Not able to reproduce this crash anymore on ToT WebKit with macOS 17F41 by running:
run-webkit-tests --iteration 1000 -g --fully-parallel --chile-process=40 http/tests/contentfiltering/load-substitute-data-from-appcache.html http/tests/appcache/decide-navigation-policy-after-delay.html

Let's update the TestExpectations and then wait to see if it can be reproduced in the bots.
Comment 7 Jiewen Tan 2018-04-30 18:31:24 PDT
Committed r231191: <https://trac.webkit.org/changeset/231191>