I saw the following on a Mojave Debug bot: TestWebKitAPI.ProcessSwap.ReuseSuspendedProcessForRegularNavigation _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. Received data during response processing, queuing it. Received data during response processing, queuing it. Received data during response processing, queuing it. Received data during response processing, queuing it. _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. Received data during response processing, queuing it. Received data during response processing, queuing it. Received data during response processing, queuing it. Received data during response processing, queuing it. Received data during response processing, queuing it. SHOULD NEVER BE REACHED /Volumes/Data/slave/mojave-debug/build/Source/WebKit/UIProcess/WebPageProxy.cpp(760) : bool WebKit::WebPageProxy::suspendCurrentPageIfPossible(API::Navigation &, Optional<uint64_t>, WebKit::ProcessSwapRequestedByClient, WebKit::ShouldDelayClosingUntilEnteringAcceleratedCompositingMode) 1 0x105b9be69 WTFCrash 2 0x10bb92c2b WTFCrashWithInfo(int, char const*, char const*, int) 3 0x10c680527 WebKit::WebPageProxy::suspendCurrentPageIfPossible(API::Navigation&, WTF::Optional<unsigned long long>, WebKit::ProcessSwapRequestedByClient, WebKit::ShouldDelayClosingUntilEnteringAcceleratedCompositingMode) 4 0x10c692043 WebKit::WebPageProxy::commitProvisionalPage(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&) 5 0x10c4e0bc3 WebKit::ProvisionalPageProxy::didCommitLoadForFrame(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&) 6 0x10c51ca50 void IPC::callMemberFunctionImpl<WebKit::ProvisionalPageProxy, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WTF::String, bool, unsigned int, WebCore::CertificateInfo, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData>, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul>(WebKit::ProvisionalPageProxy*, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WTF::String, bool, unsigned int, WebCore::CertificateInfo, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul>) 7 0x10c515200 void IPC::callMemberFunction<WebKit::ProvisionalPageProxy, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&), std::__1::tuple<unsigned long long, unsigned long long, WTF::String, bool, unsigned int, WebCore::CertificateInfo, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData>, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul> >(std::__1::tuple<unsigned long long, unsigned long long, WTF::String, bool, unsigned int, WebCore::CertificateInfo, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData>&&, WebKit::ProvisionalPageProxy*, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&)) 8 0x10c4e383c void IPC::handleMessage<Messages::WebPageProxy::DidCommitLoadForFrame, WebKit::ProvisionalPageProxy, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&)>(IPC::Decoder&, WebKit::ProvisionalPageProxy*, void (WebKit::ProvisionalPageProxy::*)(unsigned long long, unsigned long long, WTF::String const&, bool, unsigned int, WebCore::CertificateInfo const&, bool, WTF::Optional<WebCore::HasInsecureContent>, WebKit::UserData const&)) 9 0x10c4e2437 WebKit::ProvisionalPageProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 10 0x10bc80619 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) 11 0x10c4b2f04 WebKit::AuxiliaryProcessProxy::dispatchMessage(IPC::Connection&, IPC::Decoder&) 12 0x10c78125a WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 13 0x10bc03b69 IPC::Connection::dispatchMessage(IPC::Decoder&) 14 0x10bbfc4b2 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. 15 0x10bc0293b IPC::Connection::dispatchIncomingMessages() 16 0x10bc25305 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()() 17 0x10bc25239 WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14, void>::call() 18 0x105bc8c1a WTF::Function<void ()>::operator()() const 19 0x105c33cb3 WTF::RunLoop::performWork() 20 0x105c3506e WTF::RunLoop::performWork(void*) 21 0x7fff4db1f083 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 22 0x7fff4db1f029 __CFRunLoopDoSource0 23 0x7fff4db029eb __CFRunLoopDoSources0 24 0x7fff4db01fb5 __CFRunLoopRun 25 0x7fff4db018be CFRunLoopRunSpecific 26 0x7fff4fd658ef -[NSRunLoop(NSRunLoop) runMode:beforeDate:] 27 0x1032ac9b6 TestWebKitAPI::Util::run(bool*) 28 0x1030f2480 testReuseSuspendedProcessForRegularNavigation(RetainPageInBundle) 29 0x1030f2725 ProcessSwap_ReuseSuspendedProcessForRegularNavigation_Test::TestBody() 30 0x10346468e void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) 31 0x103431d8b void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) LEAK: 1 WebPage https://build.webkit.org/builders/Apple%20Mojave%20Debug%20WK1%20(Tests)/builds/3959
From Source/WebKit/UIProcess/WebPageProxy.cpp: if (fromItem && fromItem->url() != pageLoadState().url()) { RELEASE_LOG_ERROR_IF_ALLOWED(ProcessSwapping, "suspendCurrentPageIfPossible: Not suspending current page for process pid %i because fromItem's URL does not match the page URL.", m_process->processIdentifier()); ASSERT_NOT_REACHED(); return false; }
<rdar://problem/51760232>
This looks like it may be a flaky assertion failure.
Just saw this on High Sierra with API test ProcessSwap.ReuseSuspendedProcessForRegularNavigationRetainBundlePage https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20WK2%20%28Tests%29/builds/8238/steps/run-api-tests/logs/stdio
I am having trouble reproducing, even running the API test in a loop. I also tried with GuardMalloc.
http://trac.webkit.org/r258272