When the network process crashes after a CreateNetworkConnectionToWebProcess is sent from UI process (in response to GetNetworkProcessConnection) but before the reply is provided, the originating WebContent process crashes inside ensureNetworkProcessConnection. Here's one way to reproduce this crash: 1. Start two WebContent process A and B 2. Kill the network process 3. Load a new page in process A 4. Suspend the network process newly created in step 3 (kill -STOP pid) 5. Load a new page in process B 6. Kill the network process suspended in step 4 7. WebContent process B crashes. In the actual crash happening in the field, step 4 is likely some sort of a spin or a delay in IPC. What’s important is the network process crasehs after process B requested a new network connection but before fulfilling the reply. In that case, networkProcessCrashedOrFailedToLaunch would simply return 0 in GetNetworkProcessConnection::DelayedReply, and this causes the originating WebContent process to crash inside ensureNetworkProcessConnection.
<rdar://problem/30359835>
Created attachment 314370 [details] Fixes the bug
Ping reviewers.
Comment on attachment 314370 [details] Fixes the bug View in context: https://bugs.webkit.org/attachment.cgi?id=314370&action=review > Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:78 > +- (pid_t)_networkProcessIdentifier; Availability macros.
Created attachment 314504 [details] Patch for landing
Comment on attachment 314504 [details] Patch for landing Clearing flags on attachment: 314504 Committed r219087: <http://trac.webkit.org/changeset/219087>
All reviewed patches have been landed. Closing bug.