Bug 146545

Summary: REGRESSION(r186025): [SOUP] NetworkCache gets blocked in traverse since r186025
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: WebKit2Assignee: Nobody <webkit-unassigned>
Severity: Normal CC: commit-queue, koivisto, svillar
Priority: P2 Keywords: Gtk, Regression, Soup
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Description Flags
Patch svillar: review+

Description Carlos Garcia Campos 2015-07-02 05:34:41 PDT
In r186025 the readSync method used when traversing the cache files was removed in favor of using parallel async reads to speed up the traverse. The approach used doesn't work for soup, because the IO operations are async, but run their callbacks in the current thread. The network cache now runs up to 5 async reads in the io work queue thread, and waits for them to finish, and those asycn reads never finish for the soup backend because the thread is blocked waiting for them. We need to use a different thread to run those reads.
Comment 1 Carlos Garcia Campos 2015-07-02 05:38:41 PDT
Created attachment 256006 [details]
Comment 2 WebKit Commit Bot 2015-07-02 05:40:53 PDT
Attachment 256006 [details] did not pass style-queue:

ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannel.h:63:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:183:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 3 files

If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Carlos Garcia Campos 2015-07-03 01:46:17 PDT
Committed r186258: <http://trac.webkit.org/changeset/186258>