Bug 145406

Summary: [SOUP] Network Cache: Handle the case when we fail to create the IO stream
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: WebKit2Assignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: koivisto, svillar
Priority: P2 Keywords: Gtk, Soup
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch svillar: review+

Description Carlos Garcia Campos 2015-05-27 01:00:51 PDT
We are currently asserting in that case, but it can happen that we fail to create the stream. It happened to me after r184690, that changed the NetworkCache::Key hashes. 

(process:11766): GLib-GIO-CRITICAL **: g_input_stream_read_async: assertion 'G_IS_INPUT_STREAM (stream)' failed

(process:11766): GLib-GIO-CRITICAL **: g_input_stream_read_async: assertion 'G_IS_INPUT_STREAM (stream)' failed

(process:11766): GLib-GIO-CRITICAL **: g_input_stream_read_async: assertion 'G_IS_INPUT_STREAM (stream)' failed

(process:11766): GLib-GIO-CRITICAL **: g_input_stream_read_async: assertion 'G_IS_INPUT_STREAM (stream)' failed

(process:11766): GLib-GIO-CRITICAL **: g_input_stream_read_async: assertion 'G_IS_INPUT_STREAM (stream)' failed

(process:11766): GLib-GIO-CRITICAL **: g_input_stream_read_async: assertion 'G_IS_INPUT_STREAM (stream)' failed

Since this was not expected to happen, the async operation never finished and then the completion handler never called, leaving those resources loading forever. We should make sure we call the completion handler with an error code, so that the load finishes and the entry is silently removed from the cache.
Comment 1 Carlos Garcia Campos 2015-05-27 01:04:10 PDT
Created attachment 253787 [details]
Patch
Comment 2 Carlos Garcia Campos 2015-05-27 01:37:58 PDT
Committed r184901: <http://trac.webkit.org/changeset/184901>