RESOLVED FIXED 196451
UIProcess crash when a prewarmed process is terminated
https://bugs.webkit.org/show_bug.cgi?id=196451
Summary UIProcess crash when a prewarmed process is terminated
Chris Dumez
Reported 2019-04-01 11:48:59 PDT
UIProcess crash when a prewarmed process is terminated: Thread[0] EXC_BAD_ACCESS (SIGSEGV) (KERN_INVALID_ADDRESS at 0x0000000000000040) [ 0] 0x000000020be94430 WebKit`WebKit::WebProcessProxy::didClose(IPC::Connection&) [inlined] WebKit::WebsiteDataStore::sessionID() const at WebsiteDataStore.h:101:47 97 98 static WebsiteDataStore* existingNonDefaultDataStoreForSessionID(PAL::SessionID); 99 100 bool isPersistent() const { return !m_sessionID.isEphemeral(); } -> 101 PAL::SessionID sessionID() const { return m_sessionID; } 102 103 bool resourceLoadStatisticsEnabled() const; 104 void setResourceLoadStatisticsEnabled(bool); 105 bool resourceLoadStatisticsDebugMode() const; 0x000000020be94420: ldr x8, [x8, #0x7e0] 0x000000020be94424: ldr x8, [x8] 0x000000020be94428: str x8, [sp, #0x18] 0x000000020be9442c: ldr x8, [x0, #0x310] -> 0x000000020be94430: ldr x8, [x8, #0x40] 0x000000020be94434: cmn x8, #0x1 ; =0x1 0x000000020be94438: b.lt 0x25d48c ; <+136> at WebProcessProxy.cpp:669:5 0x000000020be9443c: adrp x8, 1015 0x000000020be94440: add x8, x8, #0x128 ; =0x128 [ 0] 0x000000020be94430 WebKit`WebKit::WebProcessProxy::didClose(IPC::Connection&) + 44 at WebProcessProxy.cpp:668 664 } 665 666 void WebProcessProxy::didClose(IPC::Connection&) 667 { -> 668 RELEASE_LOG_IF(m_websiteDataStore->sessionID().isAlwaysOnLoggingAllowed(), Process, "%p - WebProcessProxy didClose (web process crash)", this); 669 processDidTerminateOrFailedToLaunch(); 670 } 671 672 void WebProcessProxy::processDidTerminateOrFailedToLaunch() [ 1] 0xffffff820bc69dc8 0 + -540968313400 [ 2] 0x000000020bc69dc7 WebKit`WTF::Function<void ()>::CallableWrapper<IPC::Connection::connectionDidClose()::$_13>::call() [inlined] IPC::Connection::connectionDidClose()::$_13::operator()() + 63 at Connection.cpp:851:33 847 // Set m_isValid to false before calling didClose, otherwise, sendSync will try to send a message 848 // to the connection and will then wait indefinitely for a reply. 849 protectedThis->m_isValid = false; 850 -> 851 protectedThis->m_client.didClose(protectedThis.get()); 852 }); 853 } 854 855 bool Connection::canSendOutgoingMessages() const [ 2] 0x000000020bc69d88 WebKit`WTF::Function<void ()>::CallableWrapper<IPC::Connection::connectionDidClose()::$_13>::call() at Function.h:102
Attachments
Patch (8.99 KB, patch)
2019-04-01 12:03 PDT, Chris Dumez
no flags
Chris Dumez
Comment 1 2019-04-01 11:49:14 PDT
Chris Dumez
Comment 2 2019-04-01 12:03:53 PDT
Geoffrey Garen
Comment 3 2019-04-01 13:25:34 PDT
Comment on attachment 366412 [details] Patch r=me
Alex Christensen
Comment 4 2019-04-01 13:29:31 PDT
*** Bug 196460 has been marked as a duplicate of this bug. ***
WebKit Commit Bot
Comment 5 2019-04-01 13:52:41 PDT
Comment on attachment 366412 [details] Patch Clearing flags on attachment: 366412 Committed r243711: <https://trac.webkit.org/changeset/243711>
WebKit Commit Bot
Comment 6 2019-04-01 13:52:43 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.