Closed Bug 32607 Opened 25 years ago Closed 25 years ago

MLK: Leaking nsCachedNetData objects.

Categories

(Core :: Networking: Cache, defect, P3)

defect

Tracking

()

VERIFIED DUPLICATE of bug 31367

People

(Reporter: bruce, Assigned: gordon)

Details

Visible when loading http://www.wired.com/ at least. Don't know about other cases yet. I fixed one large leak through here of the string itself in nsCachedNetData::Deserialize(), so I don't think this is that again. Maybe we're leaking nsCachedNetData objects? According to bloaty: 128 nsCachedNetData 68 1224 18 18 ( 9.50 +/- 5.34) 205 18 ( 30.42 +/- 13.06) We leak 18 of these babies. Current build. MLK: 65 bytes leaked at 0x11fb020 This memory was allocated from: malloc [rtlib.o] PR_Malloc [prmem.c:38] nsAllocatorImpl::Alloc(unsigned int) [nsAllocator.cpp:82] nsAllocator::Alloc(unsigned int) [nsAllocator.cpp:148] nsStr::Alloc(nsStr&,unsigned int) [nsStr.cpp:663] nsStr::Realloc(nsStr&,unsigned int) [nsStr.cpp:690] nsStr::EnsureCapacity(nsStr&,unsigned int) [nsStr.cpp:100] nsStr::GrowCapacity(nsStr&,unsigned int) [nsStr.cpp:120] nsStr::Append(nsStr&,const nsStr&,unsigned int,int) [nsStr.cpp:166] nsStr::Assign(nsStr&,const nsStr&,unsigned int,int) [nsStr.cpp:146] nsCString::nsCString(const nsStr&) [nsString.cpp:100] nsString::ToNewCString()const [nsString2.cpp:645] nsBinaryInputStream::ReadStringZ(char**) [nsBinaryStream.cpp:308] nsCachedNetData::Deserialize(int) [nsCachedNetData.cpp:475] nsCachedNetData::Resurrect(nsINetDataCacheRecord*) [nsCachedNetData.cpp:373] nsReplacementPolicy::AssociateCacheEntryWithRecord(nsINetDataCacheRecord*,nsINetDataCache*,nsCachedNetData**) [nsReplacementPolicy.cpp:460] nsReplacementPolicy::GetCachedNetData(const char*,unsigned int,nsINetDataCache*,nsCachedNetData**) [nsReplacementPolicy.cpp:542] nsCacheManager::GetCachedNetData(const char*,const char*,unsigned int,unsigned int,nsICachedNetData**) [nsCacheManager.cpp:257] nsHTTPChannel::CheckCache() [nsHTTPChannel.cpp:754] nsHTTPChannel::Open() [nsHTTPChannel.cpp:1117] nsHTTPChannel::AsyncRead(unsigned int,int,nsISupports*,nsIStreamListener*) [nsHTTPChannel.cpp:276] nsDocumentOpenInfo::Open(nsIChannel*,int,const char*,nsISupports*) [nsURILoader.cpp:246] nsURILoader::OpenURIVia(nsIChannel*,int,const char*,nsISupports*,unsigned int) [nsURILoader.cpp:591] nsURILoader::OpenURI(nsIChannel*,int,const char*,nsISupports*) [nsURILoader.cpp:510] ImageNetContextImpl::GetURL(ilIURL*,NET_ReloadMethod,ilINetReader*) [nsImageNetContextAsync.cpp:751] IL_GetImage [if.cpp:2165] ImageRequestImpl::Init(void*,const char*,nsIImageRequestObserver*,const unsigned int*,unsigned int,unsigned int,unsigned int,ilINetContext*) [nsImageRequest.cpp:260] ImageGroupImpl::GetImage(const char*,nsIImageRequestObserver*,const unsigned int*,unsigned int,unsigned int,unsigned int) [nsImageGroup.cpp:266] nsFrameImageLoader::Init(nsIPresContext*,nsIImageGroup*,const nsString&,const unsigned int*,const nsSize*,nsIFrame*,unsigned int(*)(nsIPresContext*,nsIFrameImageLoader*,nsIFrame*,void*,unsigned int),void*) [nsFrameImageLoader.cpp:180] nsPresContext::StartLoadImage(const nsString&,const unsigned int*,const nsSize*,nsIFrame*,unsigned int(*)(nsIPresContext*,nsIFrameImageLoader*,nsIFrame*,void*,unsigned int),void*,nsIFrameImageLoader**) [nsPresContext.cpp:876]
An easier test case for this is to run: ./viewer -url http://www.cybersight.com/~bruce/index.html and exit. Using XPCOM_MEM_LEAK_LOG will then show a single nsCachedNetData created and it is subsequently leaked. Purify will _not_ show this leak directly.
Target Milestone: --- → M17
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
*** This bug has been marked as a duplicate of 31367 ***
Dup. verified
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.