| Summary: | [iOS 14] Crash in IPC::Connection::dispatchIncomingMessages | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Ali Juma <ajuma> | ||||
| Component: | WebKit2 | Assignee: | Nobody <webkit-unassigned> | ||||
| Status: | NEW --- | ||||||
| Severity: | Normal | CC: | achristensen, ap, beidson, cdumez, ddkilzer, justincohen, rniwa, webkit-bug-importer | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Attachments: |
|
||||||
|
Description
Ali Juma
2020-10-07 12:59:05 PDT
I was able to trigger the crash by aborting session restore (i.e. closing the tab). I could only reproduce on device, and only by artificially putting the device under heavy load. I looped thru many session restores with plenty of pushStates and released the WKWebView before the IPC throttling could complete. Can you please provide a full crash trace file? Created attachment 412319 [details]
A zip of various crash files.
Seems to be crashing on:
message = m_incomingMessages.takeFirst();
in Connection::dispatchIncomingMessages():
Thread[0] EXC_BAD_ACCESS (SIGSEGV) (KERN_INVALID_ADDRESS at 0x0000000000001bb8)
[ 0] 0x00000001aaaad570 WebKit`IPC::Connection::dispatchIncomingMessages() [inlined] std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >::release() at memory:2613:26
0x00000001aaaad560: mov w22, #0x0
0x00000001aaaad564: mov x24, #0x0
0x00000001aaaad568: b 0x306ac ; <+424> [inlined] WTF::compilerFence() at Locker.h:69
0x00000001aaaad56c: ldr x9, [x19, #0x90]
-> 0x00000001aaaad570: ldr x21, [x9, x8, lsl #3]
0x00000001aaaad574: str xzr, [x9, x8, lsl #3]
0x00000001aaaad578: ldr x9, [x19, #0x90]
0x00000001aaaad57c: add x0, x9, x8, lsl #3
0x00000001aaaad580: mov x1, #0x0
[ 0] 0x00000001aaaad570 WebKit`IPC::Connection::dispatchIncomingMessages() [inlined] std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >::unique_ptr(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >&&) at memory:2519
[ 0] 0x00000001aaaad570 WebKit`IPC::Connection::dispatchIncomingMessages() [inlined] std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >::unique_ptr(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >&&) at memory:2519
[ 0] 0x00000001aaaad570 WebKit`IPC::Connection::dispatchIncomingMessages() [inlined] WTF::Deque<std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >, 0ul>::takeFirst() + 4 at Deque.h:458
[ 0] 0x00000001aaaad56c WebKit`IPC::Connection::dispatchIncomingMessages() + 104 at Connection.cpp:1154
|