RESOLVED WONTFIX 106297
Every cached image is an error
https://bugs.webkit.org/show_bug.cgi?id=106297
Summary Every cached image is an error
Philip Rogers
Reported 2013-01-07 21:09:42 PST
Every cached image load causes the following error: CachedImage::data(...) ... error(errorOccurred() ? status() : DecodeError); http://trac.webkit.org/browser/trunk/Source/WebCore/loader/cache/CachedImage.cpp?rev=138976#L381 The culprit is cache revalidation. When loading cached resources we revalidate the cache by sending a request to the server and waiting for the 304 not modified response. Behind the scenes we actually hold two CachedImages: the cached cached image (sorry!) and the revalidating cached image. If revalidation succeeds with a 304 we throw away the revalidating image and use the cached image. If revalidation fails (server resource changed) we evict the cached cached image and continue to load the revalidating image. Every cached image load causes an error because, in the success case, we do not cancel the revalidation request once we receive a 304 not modified response. The revalidating cached image continues to load in its merry way: CachedImage::data() is called which creates a new BitmapImage that ends up throwing an error, and ultimately this cached image is freed in the SubResourceLoader because it has no references. Patch forthcoming.
Attachments
First pass (1.75 KB, patch)
2013-01-07 21:31 PST, Philip Rogers
buildbot: commit-queue-
Philip Rogers
Comment 1 2013-01-07 21:31:28 PST
Created attachment 181634 [details] First pass
Build Bot
Comment 2 2013-01-07 22:05:38 PST
Comment on attachment 181634 [details] First pass Attachment 181634 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/15734979 New failing tests: http/tests/inspector/resource-tree/resource-request-content-while-loading.html
WebKit Review Bot
Comment 3 2013-01-07 22:29:12 PST
Comment on attachment 181634 [details] First pass Attachment 181634 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/15733986 New failing tests: http/tests/inspector/compiler-source-mapping-debug.html http/tests/inspector/resource-tree/resource-tree-reload.html
Alexey Proskuryakov
Comment 4 2013-01-08 10:41:41 PST
These broken tests look related to the proposed change, at least at a first glance.
Philip Rogers
Comment 5 2013-01-09 15:25:37 PST
(In reply to comment #4) > These broken tests look related to the proposed change, at least at a first glance. The tests are correctly failing. As strange as it seems, error() needs to be called during cache revalidation :/ I've filed a separate bug and put up a patch for the narrower issue of CreateImage() being called on revalidation requests for images: https://bugs.webkit.org/show_bug.cgi?id=106156
Note You need to log in before you can comment on or make changes to this bug.