| Summary: | UIProcess crash when a prewarmed process is terminated | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Chris Dumez <cdumez> | ||||
| Component: | WebKit2 | Assignee: | Chris Dumez <cdumez> | ||||
| Status: | RESOLVED FIXED | ||||||
| Severity: | Normal | CC: | achristensen, beidson, commit-queue, ggaren, webkit-bug-importer | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 196104 | ||||||
| Attachments: |
|
||||||
Created attachment 366412 [details]
Patch
Comment on attachment 366412 [details]
Patch
r=me
*** Bug 196460 has been marked as a duplicate of this bug. *** Comment on attachment 366412 [details] Patch Clearing flags on attachment: 366412 Committed r243711: <https://trac.webkit.org/changeset/243711> All reviewed patches have been landed. Closing bug. |
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