Closed Bug 289237 Opened 19 years ago Closed 8 years ago

ASSERTION: ### Attempting to remove unknown cache entry!!!: 'check == cacheEntry', file r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp, line 485

Categories

(Core :: Networking: Cache, defect)

x86
Windows XP
defect
Not set
minor

Tracking

()

RESOLVED WONTFIX

People

(Reporter: timeless, Unassigned)

References

Details

(Keywords: assertion)

###!!! ASSERTION: ### Attempting to remove unknown cache entry!!!: 'check ==
cacheEntry', file r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp, line 485

 	xpcom_core.dll!nsDebug::Assertion(const char * aStr=0x014fa004, const char *
aExpr=0x014f9ff0, const char * aFile=0x014f9fc0, int aLine=0x000001e5)  Line 109	C++
>	necko.dll!nsCacheEntryHashTable::RemoveEntry(nsCacheEntry *
cacheEntry=0x046dbc80)  Line 485 + 0x22	C++
 	necko.dll!nsCacheService::DeactivateEntry(nsCacheEntry * entry=0x046dbc80) 
Line 1497	C++
 	necko.dll!nsCacheService::CloseDescriptor(nsCacheEntryDescriptor *
descriptor=0x04c1d2b8)  Line 1395	C++
 	necko.dll!nsCacheEntryDescriptor::Close()  Line 420 + 0x9	C++
 	necko.dll!nsCacheEntryDescriptor::~nsCacheEntryDescriptor()  Line 75	C++
 	necko.dll!nsCacheEntryDescriptor::`scalar deleting destructor'()  + 0xf	C++
 	necko.dll!nsCacheEntryDescriptor::Release()  Line 53 + 0x8e	C++
 
necko.dll!nsCOMPtr<nsICacheEntryDescriptor>::assign_assuming_AddRef(nsICacheEntryDescriptor
* newPtr=0x00000000)  Line 569	C++
 	necko.dll!nsCOMPtr<nsICacheEntryDescriptor>::assign_with_AddRef(nsISupports *
rawPtr=0x00000000)  Line 1225	C++
 	necko.dll!nsCOMPtr<nsICacheEntryDescriptor>::operator=(nsICacheEntryDescriptor
* rhs=0x00000000)  Line 714	C++
 	necko.dll!nsHttpChannel::CloseCacheEntry(unsigned int status=0x00000000) 
Line 1600	C++
 	necko.dll!nsHttpChannel::OnStopRequest(nsIRequest * request=0x04698d20,
nsISupports * ctxt=0x00000000, unsigned int status=0x00000000)  Line 3850	C++
 	necko.dll!nsInputStreamPump::OnStateStop()  Line 507	C++
 	necko.dll!nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream *
stream=0x040385b0)  Line 343 + 0xb	C++
 	xpcom_core.dll!nsInputStreamReadyEvent::EventHandler(PLEvent *
plevent=0x0580db7c)  Line 120	C++
 	xpcom_core.dll!PL_HandleEvent(PLEvent * self=0x0580db7c)  Line 698 + 0xa	C
 	xpcom_core.dll!PL_ProcessPendingEvents(PLEventQueue * self=0x01143078)  Line
633 + 0x9	C
 	xpcom_core.dll!_md_TimerProc(HWND__ * hwnd=0x000e12b6, unsigned int
uMsg=0x00000113, unsigned int idEvent=0x00000000, unsigned long
dwTime=0x807b1add)  Line 1034 + 0x9	C
 	user32.dll!_InternalCallWinProc@20()  + 0x28	
 	user32.dll!_UserCallWinProc@24()  + 0xa1	
 	user32.dll!_DispatchMessageWorker@8()  + 0xcc6	
 	user32.dll!_DispatchMessageA@4()  + 0xf	
 	mfc71d.dll!AfxInternalPumpMessage()  Line 188	C++
 	mfc71d.dll!CWinThread::PumpMessage()  Line 916	C++
 	mfc71d.dll!CWinThread::Run()  Line 637 + 0xb	C++
 	mfc71d.dll!CWinApp::Run()  Line 701	C++
 	mfc71d.dll!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ *
hPrevInstance=0x00000000, char * lpCmdLine=0x00142384, int nCmdShow=0x0000000a)
 Line 49 + 0xb	C++
 	mfcembed.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ *
hPrevInstance=0x00000000, char * lpCmdLine=0x00142384, int nCmdShow=0x0000000a)
 Line 25	C++
 	mfcembed.exe!WinMainCRTStartup()  Line 390 + 0x39	C
 	kernel32.dll!_BaseProcessStart@4()  + 0x23	

-	cacheEntry	0x046dbc80 {mKey=0x04d0ae68 mFetchCount=0x00000001
mLastFetched=0x42523c63 ...}	nsCacheEntry *
|+	PRCListStr	{next=0x046dbc80 {next=0x046dbc80 {next=0x046dbc80
{next=0x046dbc80 prev=0x046dbc80 } prev=0x046dbc80 {next=0x046dbc80
prev=0x046dbc80 } } prev=0x046dbc80 {next=0x046dbc80 {next=0x046dbc80
prev=0x046dbc80 } prev=0x046dbc80 {next=0x046dbc80 prev=0x046dbc80 } } }
prev=0x046dbc80 {next=0x046dbc80 {next=0x046dbc80 {next=0x046dbc80
prev=0x046dbc80 } prev=0x046dbc80 {next=0x046dbc80 prev=0x046dbc80 } }
prev=0x046dbc80 {next=0x046dbc80 {next=0x046dbc80 prev=0x046dbc80 }
prev=0x046dbc80 {next=0x046dbc80 prev=0x046dbc80 } } } }	PRCListStr
|-	mKey	0x04d0ae68	nsCString *
|\-	nsCSubstring	{...}	nsCSubstring
| \-	nsACString	{mVTable=0x00ee1688 const nsObsoleteACStringThunk::`vftable'
mData=0x04cc9388 "HTTP:http://landfill.mozilla.org/ryl/random.html"
mLength=0x00000030 ...}	nsACString
|  |	mVTable	0x00ee1688 const nsObsoleteACStringThunk::`vftable'	const void *
|  |+	mData	0x04cc9388 "HTTP:http://landfill.mozilla.org/ryl/random.html"	char *
|  |	mLength	0x00000030	unsigned int
|  \	mFlags	0x00000005	unsigned int
|	mFetchCount	0x00000001	unsigned int
|	mLastFetched	0x42523c63	unsigned int
|	mLastModified	0x4252e3a5	unsigned int
|	mLastValidated	0xcdcdcdcd	unsigned int
|	mExpirationTime	0x00000000	unsigned int
|	mFlags	0x00007e00	unsigned int
|	mDataSize	0x000001fa	unsigned int
|+	mCacheDevice	0x01953960 {mCacheDirectory={mRawPtr=0x01974e98
{mRefCnt={mValue=0x00000002 } _mOwningThread={mThread=0x003f51b8 } mDirty=0x01
'␁' ...} } mBindery={ops={allocTable=0x014a1b22 PL_DHashAllocTable
freeTable=0x014a1b1c PL_DHashFreeTable getKey=0x01457640 GetKey(PLDHashTable *,
PLDHashEntryHdr *) ...} table={ops=0x01520ab8 struct PLDHashTableOps
nsDiskCacheBindery::ops data=0x00000000 hashShift=0x001c ...}
initialized=0x00000001 } mCacheCapacity=0x03200000 ...}	nsCacheDevice *
|+	mSecurityInfo	{...}	nsCOMPtr<nsISupports>
|+	mData	{...}	nsCOMPtr<nsISupports>
|	mThread	0xcdcdcdcd	PRThread *
|+	mMetaData	{mData=0x03f5e268 {mNext=0x06209fd0 {mNext=0x0506d300
{mNext=0x00000000 mKey={...} mValue=0x0506d308 } mKey={mRawPtr=0x0367cef0 }
mValue=0x06209fd8 "HTTP/1.1 200 OK
Date: Tue, 05 Apr 2005 18:56:00 GMT
Server: Apache/2.0.51 (Fedora)
Last-Modified: Thu, 31 Mar 2005 01:19:19 GMT
Etag: "83add-1fa-aed2f3c0"
Accept-Ranges: bytes
Content-Length: 506
Content-Type: text/html; charset=UTF-8
|" } mKey={mRawPtr=0x0367ce60 {mRefCnt={...} _mOwningThread={...}
mString=0x0367ce6c } } mValue=0x03f5e270 "GET" } mMetaSize=0x00000123 }
nsCacheMetaData
|+	mRequestQ	{next=0x046dbcc0 {next=0x046dbcc0 {next=0x046dbcc0 {next=0x046dbcc0
prev=0x046dbcc0 } prev=0x046dbcc0 {next=0x046dbcc0 prev=0x046dbcc0 } }
prev=0x046dbcc0 {next=0x046dbcc0 {next=0x046dbcc0 prev=0x046dbcc0 }
prev=0x046dbcc0 {next=0x046dbcc0 prev=0x046dbcc0 } } } prev=0x046dbcc0
{next=0x046dbcc0 {next=0x046dbcc0 {next=0x046dbcc0 prev=0x046dbcc0 }
prev=0x046dbcc0 {next=0x046dbcc0 prev=0x046dbcc0 } } prev=0x046dbcc0
{next=0x046dbcc0 {next=0x046dbcc0 prev=0x046dbcc0 } prev=0x046dbcc0
{next=0x046dbcc0 prev=0x046dbcc0 } } } }	PRCListStr
\+	mDescriptorQ	{next=0x046dbcc8 {next=0x046dbcc8 {next=0x046dbcc8
{next=0x046dbcc8 prev=0x046dbcc8 } prev=0x046dbcc8 {next=0x046dbcc8
prev=0x046dbcc8 } } prev=0x046dbcc8 {next=0x046dbcc8 {next=0x046dbcc8
prev=0x046dbcc8 } prev=0x046dbcc8 {next=0x046dbcc8 prev=0x046dbcc8 } } }
prev=0x046dbcc8 {next=0x046dbcc8 {next=0x046dbcc8 {next=0x046dbcc8
prev=0x046dbcc8 } prev=0x046dbcc8 {next=0x046dbcc8 prev=0x046dbcc8 } }
prev=0x046dbcc8 {next=0x046dbcc8 {next=0x046dbcc8 prev=0x046dbcc8 }
prev=0x046dbcc8 {next=0x046dbcc8 prev=0x046dbcc8 } } } }	PRCListStr
-	check	0x058376a0 {mKey=0x06583808 mFetchCount=0x00000001
mLastFetched=0x4252df4b ...}	nsCacheEntry *
|+	PRCListStr	{next=0x058376a0 {next=0x058376a0 {next=0x058376a0
{next=0x058376a0 prev=0x058376a0 } prev=0x058376a0 {next=0x058376a0
prev=0x058376a0 } } prev=0x058376a0 {next=0x058376a0 {next=0x058376a0
prev=0x058376a0 } prev=0x058376a0 {next=0x058376a0 prev=0x058376a0 } } }
prev=0x058376a0 {next=0x058376a0 {next=0x058376a0 {next=0x058376a0
prev=0x058376a0 } prev=0x058376a0 {next=0x058376a0 prev=0x058376a0 } }
prev=0x058376a0 {next=0x058376a0 {next=0x058376a0 prev=0x058376a0 }
prev=0x058376a0 {next=0x058376a0 prev=0x058376a0 } } } }	PRCListStr
|-	mKey	0x06583808	nsCString *
|\-	nsCSubstring	{...}	nsCSubstring
| \-	nsACString	{mVTable=0x00ee1688 const nsObsoleteACStringThunk::`vftable'
mData=0x06583850 "HTTP:http://landfill.mozilla.org/ryl/random.html"
mLength=0x00000030 ...}	nsACString
|  |	mVTable	0x00ee1688 const nsObsoleteACStringThunk::`vftable'	const void *
|  |+	mData	0x06583850 "HTTP:http://landfill.mozilla.org/ryl/random.html"	char *
|  |	mLength	0x00000030	unsigned int
|  \	mFlags	0x00000005	unsigned int
|	mFetchCount	0x00000001	unsigned int
|	mLastFetched	0x4252df4b	unsigned int
|	mLastModified	0xcdcdcdcd	unsigned int
|	mLastValidated	0xcdcdcdcd	unsigned int
|	mExpirationTime	0xffffffff	unsigned int
|	mFlags	0x00007200	unsigned int
|	mDataSize	0x00000000	unsigned int
|+	mCacheDevice	0x00000000	nsCacheDevice *
|+	mSecurityInfo	{...}	nsCOMPtr<nsISupports>
|+	mData	{...}	nsCOMPtr<nsISupports>
|	mThread	0xcdcdcdcd	PRThread *
|+	mMetaData	{mData=0x00000000 {mNext=??? mKey={mRawPtr=??? } mValue=0x00000008
<Bad Ptr> } mMetaSize=0x00000000 }	nsCacheMetaData
|+	mRequestQ	{next=0x058376e0 {next=0x058376e0 {next=0x058376e0 {next=0x058376e0
prev=0x058376e0 } prev=0x058376e0 {next=0x058376e0 prev=0x058376e0 } }
prev=0x058376e0 {next=0x058376e0 {next=0x058376e0 prev=0x058376e0 }
prev=0x058376e0 {next=0x058376e0 prev=0x058376e0 } } } prev=0x058376e0
{next=0x058376e0 {next=0x058376e0 {next=0x058376e0 prev=0x058376e0 }
prev=0x058376e0 {next=0x058376e0 prev=0x058376e0 } } prev=0x058376e0
{next=0x058376e0 {next=0x058376e0 prev=0x058376e0 } prev=0x058376e0
{next=0x058376e0 prev=0x058376e0 } } } }	PRCListStr
\+	mDescriptorQ	{next=0x05837724 {next=0x058376e8 {next=0x05837724
{next=0x058376e8 prev=0x058376e8 } prev=0x05837724 {next=0x058376e8
prev=0x058376e8 } } prev=0x058376e8 {next=0x05837724 {next=0x058376e8
prev=0x058376e8 } prev=0x05837724 {next=0x058376e8 prev=0x058376e8 } } }
prev=0x05837724 {next=0x058376e8 {next=0x05837724 {next=0x058376e8
prev=0x058376e8 } prev=0x05837724 {next=0x058376e8 prev=0x058376e8 } }
prev=0x058376e8 {next=0x05837724 {next=0x058376e8 prev=0x058376e8 }
prev=0x05837724 {next=0x058376e8 prev=0x058376e8 } } } }	PRCListStr
this assert is clearly paired with bug 270529, and it seems that this assert 
indicates the behavior in the other assert branch is bad

0:000> dpa @@(&$!cacheEntry->mKey->mData)
0517667c  04831010 "HTTP:http://landfill.mozilla.org/ryl/random.html"

 # 
00 ntdll!DbgBreakPoint (FPO: [0,0,0])
01 xpcom_core!nsDebugImpl::Break(char * aFile = 
0x0147edf8 "r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp", int aLine = 0x1e5)
+0x7e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\base\nsdebugimpl.cpp @ 
350]
02 xpcom_core!nsDebugImpl::Assertion(char * aStr = 0x0147ee3c "### Attempting 
to remove unknown cache entry!!!", char * aExpr = 0x0147ee28 "check == 
cacheEntry", char * aFile = 
0x0147edf8 "r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp", int aLine = 0x1e5)
+0x29e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\base\nsdebugimpl.cpp 
@ 266]
03 xpcom_core!nsDebug::Assertion(char * aStr = 0x0147ee3c "### Attempting to 
remove unknown cache entry!!!", char * aExpr = 0x0147ee28 "check == 
cacheEntry", char * aFile = 
0x0147edf8 "r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp", int aLine = 0x1e5)
+0x4d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\dbg-i686-pc-
cygwin\xpcom\build\nsdebug.cpp @ 109]
04 necko!nsCacheEntryHashTable::RemoveEntry(class nsCacheEntry * cacheEntry = 
0x040a5380)+0x99 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nscacheentry.cpp @ 485]
05 necko!nsCacheService::DeactivateEntry(class nsCacheEntry * entry = 
0x040a5380)+0xdc (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nscacheservice.cpp @ 1446]
06 necko!nsCacheService::CloseDescriptor(class nsCacheEntryDescriptor * 
descriptor = 0x031b6180)+0x5a (FPO: [Non-Fpo]) (CONV: cdecl) 
[r:\mozilla\netwerk\cache\src\nscacheservice.cpp @ 1344]
07 necko!nsCacheEntryDescriptor::Close(void)+0x3c (FPO: [Non-Fpo]) (CONV: 
stdcall) [r:\mozilla\netwerk\cache\src\nscacheentrydescriptor.cpp @ 420]
08 necko!nsCacheEntryDescriptor::~nsCacheEntryDescriptor(void)+0x24 (FPO: [Non-
Fpo]) (CONV: thiscall) [r:\mozilla\netwerk\cache\src\nscacheentrydescriptor.cpp 
@ 75]
09 necko!nsCacheEntryDescriptor::`scalar deleting destructor'(void)+0xf (FPO: 
[Non-Fpo]) (CONV: thiscall)
0a necko!nsCacheEntryDescriptor::Release(void)+0x8e (FPO: [Non-Fpo]) (CONV: 
stdcall) [r:\mozilla\netwerk\cache\src\nscacheentrydescriptor.cpp @ 53]
0b necko!nsCOMPtr<nsICacheEntryDescriptor>::assign_assuming_AddRef(class 
nsICacheEntryDescriptor * newPtr = 0x00000000)+0x2b (FPO: [Non-Fpo]) (CONV: 
thiscall) [r:\mozilla\dbg-i686-pc-cygwin\dist\include\xpcom\nscomptr.h @ 569]
0c necko!nsCOMPtr<nsICacheEntryDescriptor>::assign_with_AddRef(class 
nsISupports * rawPtr = 0x00000000)+0x25 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\dbg-i686-pc-cygwin\dist\include\xpcom\nscomptr.h @ 1225]
0d necko!nsCOMPtr<nsICacheEntryDescriptor>::operator=(class 
nsICacheEntryDescriptor * rhs = 0x00000000)+0x13 (FPO: [Non-Fpo]) (CONV: 
thiscall) [r:\mozilla\dbg-i686-pc-cygwin\dist\include\xpcom\nscomptr.h @ 714]
0e necko!nsHttpChannel::CloseCacheEntry(unsigned int status = 0)+0x11b (FPO: 
[Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\protocol\http\src\nshttpchannel.cpp @ 1647]
0f necko!nsHttpChannel::OnStopRequest(class nsIRequest * request = 0x05277ae0, 
class nsISupports * ctxt = 0x00000000, unsigned int status = 0)+0x40e (FPO: 
[Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\netwerk\protocol\http\src\nshttpchannel.cpp @ 4017]
10 necko!nsInputStreamPump::OnStateStop(void)+0xd8 (FPO: [Non-Fpo]) (CONV: 
thiscall) [r:\mozilla\netwerk\base\src\nsinputstreampump.cpp @ 507]
11 necko!nsInputStreamPump::OnInputStreamReady(class nsIAsyncInputStream * 
stream = 0x06a9afe0)+0x90 (FPO: [Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\netwerk\base\src\nsinputstreampump.cpp @ 343]
12 xpcom_core!nsInputStreamReadyEvent::EventHandler(struct PLEvent * plevent = 
0x0604a7a4)+0x59 (FPO: [Non-Fpo]) (CONV: cdecl) 
[r:\mozilla\xpcom\io\nsstreamutils.cpp @ 120]
13 xpcom_core!PL_HandleEvent(struct PLEvent * self = 0x0604a7a4)+0x3d (FPO: 
[Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 685]
14 xpcom_core!PL_ProcessPendingEvents(struct PLEventQueue * self = 0x010f3ea8)
+0xc7 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 620]
15 xpcom_core!nsEventQueueImpl::ProcessPendingEvents(void)+0x5a (FPO: [Non-
Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\threads\nseventqueue.cpp @ 417]
16 gkwidget!nsWindow::DispatchPendingEvents(void)+0x7f (FPO: [Non-Fpo]) (CONV: 
thiscall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 4127]
17 gkwidget!nsWindow::ProcessMessage(unsigned int msg = 0x200, unsigned int 
wParam = 0, long lParam = 0x550116, long * aRetValue = 0x0012fd50)+0x9e8 (FPO: 
[Non-Fpo]) (CONV: thiscall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 4424]
18 gkwidget!nsWindow::WindowProc(struct HWND__ * hWnd = 0x002002dc, unsigned 
int msg = 0x200, unsigned int wParam = 0, long lParam = 0x550116)+0x134 (FPO: 
[Non-Fpo]) (CONV: stdcall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 1349]
19 USER32!InternalCallWinProc+0x28
1a USER32!UserCallWinProcCheckWow+0x150 (FPO: [Non-Fpo])
1b USER32!DispatchMessageWorker+0x306 (FPO: [Non-Fpo])
1c USER32!DispatchMessageA+0xf (FPO: [Non-Fpo])
1d MFC71D!AfxInternalPumpMessage+0x100 (FPO: [Non-Fpo])
1e MFC71D!CWinThread::PumpMessage+0xc (FPO: [Non-Fpo])
1f MFC71D!CWinThread::Run+0x87 (FPO: [Non-Fpo])
20 MFC71D!CWinApp::Run+0x57 (FPO: [Non-Fpo])
21 MFC71D!AfxWinMain+0xda (FPO: [Non-Fpo])
22 mfcembed!WinMain(struct HINSTANCE__ * hInstance = 0x00400000, struct 
HINSTANCE__ * hPrevInstance = 0x00000000, char * lpCmdLine = 0x00142394 "", int 
nCmdShow = 0xa)+0x18 (FPO: [Non-Fpo]) (CONV: stdcall) [f:\vs70builds\3077
\vc\mfcatl\ship\atlmfc\src\mfc\appmodul.cpp @ 25]
23 mfcembed!WinMainCRTStartup(void)+0x1f2 (FPO: [Non-Fpo]) (CONV: cdecl) 
[f:\vs70builds\3077\vc\crtbld\crt\src\crtexe.c @ 390]
24 kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo])
Depends on: 270529
This could just be about trying to remove an entry which is not in the table?
Is GetEntry returning 'nsnull' or a pointer to another entry?
Can someone with the debugger find out what GetEntry is returning in this case?

Or, just like bug 270529, this could be a race-condition thing?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P5
-> default owner
Assignee: darin → nobody
new cache code
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.