Bug 137362

Summary: [iOS] Networking process stops loading web pages while running Alexa test with random URL list
Product: WebKit Reporter: Pratik Solanki <psolanki>
Component: PlatformAssignee: Pratik Solanki <psolanki>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, benjamin, ddkilzer, mhock, psolanki
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch ap: review+

Description Pratik Solanki 2014-10-02 15:03:12 PDT
The networking process stops loading pages after some hours of loading random Alexa urls. When this happens we noticed that the process had hit its limit of dispatch queue threads - we had 64 com.apple.WebKit/CFNetwork threads in the Networking process. Networking comes to a stall and no progress is made until the process is killed and restarted. This can happen if ResourceHandleCFURLConnectionDelegateWithOperationQueue code is waiting for a semaphore signal and the web process dies. The cleanup code for ResourceHandleCFURLConnectionDelegateWithOperationQueue does not signal the semaphore and thus the thread just hangs around forever. Eventually, we can accumulate enough threads to hit the queue thread limit.
Comment 1 Pratik Solanki 2014-10-02 15:03:27 PDT
<rdar://problem/18507382>
Comment 2 Pratik Solanki 2014-10-02 15:15:51 PDT
Created attachment 239147 [details]
Patch
Comment 3 Pratik Solanki 2014-10-02 16:39:46 PDT
Committed r174244: <http://trac.webkit.org/changeset/174244>