Bug 107970

Summary: New NetworkProcess can ASSERT after old NetworkProcess crashes
Product: WebKit Reporter: Brady Eidson <beidson>
Component: WebKit2Assignee: Brady Eidson <beidson>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch v1 ap: review+

Description Brady Eidson 2013-01-25 11:42:14 PST
New NetworkProcess can ASSERT after old NetworkProcess crashes

Steps:
1 - Go to a site with HTTP auth, so Safari drops down the auth sheet
2 - `killall -9 NetworkProcess` in a terminal
3 - The WebProcess responds to the news that the NetworkProcess crashed by failing all of its outstanding ResourceLoaders
4 - In that process, it tells the new NetworkProcess to remove a load identifier for a failed loader
5 - The new NetworkProcess has no record of that new load identifier so it ASSERTs in:

void NetworkResourceLoadScheduler::removeLoader(SchedulableLoader* loader)
{
    ASSERT(loader);
    ...
}
Comment 1 Brady Eidson 2013-01-25 11:43:53 PST
Created attachment 184783 [details]
Patch v1
Comment 2 Brady Eidson 2013-01-25 11:47:02 PST
http://trac.webkit.org/changeset/140852