[Webkit-unassigned] [Bug 198993] New: [Curl] CurlRequestScheduler doesn't terminate worker thread in a certain situation.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jun 19 00:31:09 PDT 2019
https://bugs.webkit.org/show_bug.cgi?id=198993
Bug ID: 198993
Summary: [Curl] CurlRequestScheduler doesn't terminate worker
thread in a certain situation.
Product: WebKit
Version: WebKit Nightly Build
Hardware: Unspecified
OS: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: Platform
Assignee: webkit-unassigned at lists.webkit.org
Reporter: Takashi.Komori at sony.com
When a CurlRequest receives didReceiveDataCallback from libcurl, it append a task for main thread by calling callClient.
If CurlRequest::invalidateClient is called before the task is processed, the task will not be processed properly.
This is because invalidateClient changes m_client to nullptr and the task appended by CurlRequest::callClient checks if m_client is null.
When calling CurlRequest::didReceiveData task is not processed properly, a paused connection could remain.
In this case CurlRequestScheduler never releases the client related to it.
Eventually this causes that CurlRequestScheduler's worker thread keeps working.
This CurlRequest::invalidateClient() is called from the destructor of NetworkDataTaskCurl.
To avoid this situation, we should cancel the request before invalidate.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20190619/dc5c524f/attachment.html>
More information about the webkit-unassigned
mailing list