[Webkit-unassigned] [Bug 100791] ResourceLoader can start itself in cancel()

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Oct 31 07:23:38 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=100791





--- Comment #4 from Brady Eidson <beidson at apple.com>  2012-10-31 07:24:58 PST ---
(In reply to comment #3)
> > I've seen ResourceLoader starting itself in when cancelling.
> > 
> > The sequence is like:
> > 
> > DocumentLoader::stopLoading() cancels a ResourceLoader for a subresource which hasn't been started yet.
> > ResourceLoader::cancel() calls releaseResources() which is a virtual function
> > SubresourceLoader::releaseResources() triggers CachedResourceLoader::loadDone()
> > CachedResourceLoader::loadDone() triggers ResourceLoadScheduler::servePendingRequests() which starts the same job
> > ResourceLoader::start() is called..
> > ...
> > SubresourceLoader::releaseResources() calls ResourceLoader::releaseResources() at the end
> > ResourceLoader::releaseResources() removes itself from ResourceLoadScheduler's list, however, it is too late!
> > ResourceLoader::releaseResources() clears ResourceHandle's client but it doesn't cancel the job. So the real networking job could still be performed, depending on the implementation.
> > 
> 
> To be absolutely clear - This backtrace is the *same* ResourceLoader in ::cancel() as it is in ::start()?  And not a different ResourceLoader start()ing as a result of a different one cancel()ing?

I know that's the premise of the bug, but I just want to make it crystal clear that actually debugging has shown these are one-and-the-same.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list