Bug 205030 - Regression(r253277) ASSERTION FAILED: !parameters.request.httpBody() in NetworkConnectionToWebProcess::preconnectTo()
Summary: Regression(r253277) ASSERTION FAILED: !parameters.request.httpBody() in Netwo...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords: InRadar
Depends on:
Blocks: 204992
  Show dependency treegraph
 
Reported: 2019-12-09 15:54 PST by Chris Dumez
Modified: 2019-12-10 09:04 PST (History)
6 users (show)

See Also:


Attachments
Patch (2.09 KB, patch)
2019-12-09 15:56 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (2.21 KB, patch)
2019-12-10 08:05 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (2.18 KB, patch)
2019-12-10 08:14 PST, Chris Dumez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Dumez 2019-12-09 15:54:21 PST
ASSERTION FAILED: !parameters.request.httpBody() in NetworkConnectionToWebProcess::preconnectTo():
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp(510) : void WebKit::NetworkConnectionToWebProcess::preconnectTo(uint64_t, WebKit::NetworkResourceLoadParameters &&)
        1   0x12ea76019 WTFCrash
        2   0x10ad28b6b WTFCrashWithInfo(int, char const*, char const*, int)
        3   0x10b116cb2 WebKit::NetworkConnectionToWebProcess::preconnectTo(unsigned long long, WebKit::NetworkResourceLoadParameters&&)
        4   0x10ae5eec6 void IPC::callMemberFunctionImpl<WebKit::NetworkConnectionToWebProcess, void (WebKit::NetworkConnectionToWebProcess::*)(unsigned long long, WebKit::NetworkResourceLoadParameters&&), std::__1::tuple<unsigned long long, WebKit::NetworkResourceLoadParameters>, 0ul, 1ul>(WebKit::NetworkConnectionToWebProcess*, void (WebKit::NetworkConnectionToWebProcess::*)(unsigned long long, WebKit::NetworkResourceLoadParameters&&), std::__1::tuple<unsigned long long, WebKit::NetworkResourceLoadParameters>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>)
        5   0x10ae5e1c0 void IPC::callMemberFunction<WebKit::NetworkConnectionToWebProcess, void (WebKit::NetworkConnectionToWebProcess::*)(unsigned long long, WebKit::NetworkResourceLoadParameters&&), std::__1::tuple<unsigned long long, WebKit::NetworkResourceLoadParameters>, std::__1::integer_sequence<unsigned long, 0ul, 1ul> >(std::__1::tuple<unsigned long long, WebKit::NetworkResourceLoadParameters>&&, WebKit::NetworkConnectionToWebProcess*, void (WebKit::NetworkConnectionToWebProcess::*)(unsigned long long, WebKit::NetworkResourceLoadParameters&&))
        6   0x10ae3e71b void IPC::handleMessage<Messages::NetworkConnectionToWebProcess::PreconnectTo, WebKit::NetworkConnectionToWebProcess, void (WebKit::NetworkConnectionToWebProcess::*)(unsigned long long, WebKit::NetworkResourceLoadParameters&&)>(IPC::Decoder&, WebKit::NetworkConnectionToWebProcess*, void (WebKit::NetworkConnectionToWebProcess::*)(unsigned long long, WebKit::NetworkResourceLoadParameters&&))
        7   0x10ae3ca5a WebKit::NetworkConnectionToWebProcess::didReceiveNetworkConnectionToWebProcessMessage(IPC::Connection&, IPC::Decoder&)
        8   0x10b11385e WebKit::NetworkConnectionToWebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
        9   0x10ad959c9 IPC::Connection::dispatchMessage(IPC::Decoder&)
        10  0x10ad96331 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)
        11  0x10ad969e3 IPC::Connection::dispatchOneIncomingMessage()
        12  0x10adb191b IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_7::operator()()
        13  0x10adb1839 WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_7, void>::call()
        14  0x12ea9fc6a WTF::Function<void ()>::operator()() const
        15  0x12eb0f753 WTF::RunLoop::performWork()
        16  0x12eb10e9e WTF::RunLoop::performWork(void*)
        17  0x7fff38bec683 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
        18  0x7fff38bec629 __CFRunLoopDoSource0
        19  0x7fff38bcffeb __CFRunLoopDoSources0
        20  0x7fff38bcf5b5 __CFRunLoopRun
        21  0x7fff38bceebe CFRunLoopRunSpecific
        22  0x7fff3ae337df -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
        23  0x7fff3ae336b4 -[NSRunLoop(NSRunLoop) run]
        24  0x7fff64d5e077 _xpc_objc_main
        25  0x7fff64d5db79 _xpc_copy_xpcservice_dictionary
        26  0x10b4d5715 WebKit::XPCServiceMain(int, char const**)
        27  0x10c533dcb WKXPCServiceMain
        28  0x106d4cea2 main
        29  0x7fff64b253d5 start

Following API tests are failing on the bots in debug:
WebKit.DecidePolicyForNavigationActionForPOSTFormSubmissionThatRedirectsToGET
WebKit.DecidePolicyForNavigationActionForPOSTFormSubmissionThatRedirectsToPOST
Comment 1 Chris Dumez 2019-12-09 15:56:11 PST
Created attachment 385196 [details]
Patch
Comment 2 Antti Koivisto 2019-12-10 08:01:47 PST
Comment on attachment 385196 [details]
Patch

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

> Source/WebKit/WebProcess/WebPage/WebPage.cpp:1539
> +        WebProcess::singleton().webLoaderStrategy().preconnectTo(ResourceRequest { loadParameters.request.url() }, *this, *m_mainFrame, StoredCredentialsPolicy::Use, [](const ResourceError&) { });

It would be nicer to construct the request separately with an informative name (urlOnlyRequest?) since this is bit non-obvious.

Also didn't you remove the need to give empty lambdas to preconnectTo?
Comment 3 Chris Dumez 2019-12-10 08:05:12 PST
Created attachment 385260 [details]
Patch
Comment 4 Chris Dumez 2019-12-10 08:11:49 PST
(In reply to Antti Koivisto from comment #2)
> Comment on attachment 385196 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=385196&action=review
> 
> > Source/WebKit/WebProcess/WebPage/WebPage.cpp:1539
> > +        WebProcess::singleton().webLoaderStrategy().preconnectTo(ResourceRequest { loadParameters.request.url() }, *this, *m_mainFrame, StoredCredentialsPolicy::Use, [](const ResourceError&) { });
> 
> It would be nicer to construct the request separately with an informative
> name (urlOnlyRequest?) since this is bit non-obvious.

OK.

> 
> Also didn't you remove the need to give empty lambdas to preconnectTo?

Oh, looks like I forgot to land that patch :)
Comment 5 Chris Dumez 2019-12-10 08:14:30 PST
Created attachment 385263 [details]
Patch
Comment 6 WebKit Commit Bot 2019-12-10 09:02:26 PST
Comment on attachment 385263 [details]
Patch

Clearing flags on attachment: 385263

Committed r253327: <https://trac.webkit.org/changeset/253327>
Comment 7 WebKit Commit Bot 2019-12-10 09:02:27 PST
All reviewed patches have been landed.  Closing bug.
Comment 8 Radar WebKit Bug Importer 2019-12-10 09:04:03 PST
<rdar://problem/57795492>