[Webkit-unassigned] [Bug 61006] New: REGRESSION(r39725?) : All CachedResources are leaked

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue May 17 17:17:28 PDT 2011


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

           Summary: REGRESSION(r39725?) : All CachedResources are leaked
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P1
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: eric at webkit.org
                CC: mjs at apple.com, oliver at apple.com, koivisto at iki.fi,
                    jamesr at chromium.org
        Depends on: 22994


REGRESSION(r39725?) : All CachedResources are leaked

This has been in the tree for a long time, I'm surprised we've not noticed sooner.

I believe that http://trac.webkit.org/changeset/39725 introduced a leak of all CachedResources.

m_documentResources holds a CachedResourceHandle:
    typedef HashMap<String, CachedResourceHandle<CachedResource> > DocumentResourceMap;

The only time that a CachedResource is ever destroyed is when its handle count hits 0:

    bool canDelete() const { return !hasClients() && !m_request && !m_preloadCount && !m_handleCount && !m_resourceToRevalidate && !m_proxyResource; }
http://trac.webkit.org/browser/trunk/Source/WebCore/loader/cache/CachedResource.h#L176

But the only way to ever be removed from this map is from:
void CachedResourceLoader::removeCachedResource(CachedResource* resource) const

Which is only ever called from ~CachedResource().

This has been reported various times to Chromium (but affects all webkit implementations):
http://code.google.com/p/chromium/issues/detail?id=36142

-- 
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