Closed Bug 303180 Opened 19 years ago Closed 9 years ago

###!!! ASSERTION: evictionRank out of sync: 'evictionRank == mapRecord->EvictionRank()', file r:/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp, line 475

Categories

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

x86
Windows XP
defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: timeless, Unassigned)

References

()

Details

(Keywords: assertion)

i'd imagine this is related to the other two cache asserts i've poked today.

0[3e4cc0]: ###!!! ASSERTION: evictionRank out of sync: 'evictionRank == 
mapRecord->EvictionRank()', file 
r:/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp, line 475
0[3e4cc0]: ###!!! Break: at file 
r:/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp, line 475

0:000> dpa @@(&$!entry->mKey->mData)
07516244  06e14480 "HTTP:http://landfill.mozilla.org/ryl/random.html"

 # 
00 ntdll!DbgBreakPoint (FPO: [0,0,0])
01 xpcom_core!nsDebugImpl::Break(char * aFile = 
0x01481e48 "r:/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp", int aLine = 0x1db)
+0x7e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\base\nsdebugimpl.cpp @ 
350]
02 xpcom_core!nsDebugImpl::Assertion(char * aStr = 0x01481ea4 "evictionRank out 
of sync", char * aExpr = 0x01481e78 "evictionRank == mapRecord->EvictionRank
()", char * aFile = 
0x01481e48 "r:/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp", int aLine = 0x1db)
+0x29e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\base\nsdebugimpl.cpp 
@ 266]
03 xpcom_core!nsDebug::Assertion(char * aStr = 0x01481ea4 "evictionRank out of 
sync", char * aExpr = 0x01481e78 "evictionRank == mapRecord->EvictionRank()", 
char * aFile = 0x01481e48 "r:/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp", 
int aLine = 0x1db)+0x4d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\dbg-i686-pc-
cygwin\xpcom\build\nsdebug.cpp @ 109]
04 necko!nsDiskCacheMap::DeleteRecord(class nsDiskCacheRecord * mapRecord = 
0x03fcd0d8)+0xaf (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nsdiskcachemap.cpp @ 475]
05 necko!nsDiskCacheMap::DoomRecord(class nsDiskCacheRecord * record = 
0x03fcd0d8)+0x15 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nsdiskcachemap.cpp @ 863]
06 necko!nsDiskCacheDevice::DoomEntry(class nsCacheEntry * entry = 0x07175de0)
+0x62 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nsdiskcachedevice.cpp @ 577]
07 necko!nsCacheService::DoomEntry_Internal(class nsCacheEntry * entry = 
0x07175de0)+0x78 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nscacheservice.cpp @ 1070]
08 necko!nsCacheService::DoomEntry(class nsCacheEntry * entry = 0x07175de0)
+0x12 (FPO: [Non-Fpo]) (CONV: cdecl) 
[r:\mozilla\netwerk\cache\src\nscacheservice.cpp @ 1055]
09 necko!nsCacheEntryDescriptor::Doom(void)+0x3f (FPO: [Non-Fpo]) (CONV: 
stdcall) [r:\mozilla\netwerk\cache\src\nscacheentrydescriptor.cpp @ 386]
0a necko!nsHttpChannel::CloseCacheEntry(unsigned int status = 0x804b0002)+0xb1 
(FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\protocol\http\src\nshttpchannel.cpp @ 1637]
0b necko!nsHttpChannel::OnStopRequest(class nsIRequest * request = 0x06b10f58, 
class nsISupports * ctxt = 0x00000000, unsigned int status = 0x804b0002)+0x40e 
(FPO: [Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\netwerk\protocol\http\src\nshttpchannel.cpp @ 4017]
0c necko!nsInputStreamPump::OnStateStop(void)+0xd8 (FPO: [Non-Fpo]) (CONV: 
thiscall) [r:\mozilla\netwerk\base\src\nsinputstreampump.cpp @ 507]
0d necko!nsInputStreamPump::OnInputStreamReady(class nsIAsyncInputStream * 
stream = 0x072ed038)+0x90 (FPO: [Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\netwerk\base\src\nsinputstreampump.cpp @ 343]
0e xpcom_core!nsInputStreamReadyEvent::EventHandler(struct PLEvent * plevent = 
0x04c99004)+0x59 (FPO: [Non-Fpo]) (CONV: cdecl) 
[r:\mozilla\xpcom\io\nsstreamutils.cpp @ 120]
0f xpcom_core!PL_HandleEvent(struct PLEvent * self = 0x04c99004)+0x3d (FPO: 
[Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 685]
10 xpcom_core!PL_ProcessPendingEvents(struct PLEventQueue * self = 0x010f3ea8)
+0xc7 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 620]
11 xpcom_core!_md_TimerProc(struct HWND__ * hwnd = 0x001e0194, unsigned int 
uMsg = 0x113, unsigned int idEvent = 0, unsigned long dwTime = 0x44cdb2a0)+0x5d 
(FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\threads\plevent.c @ 1010]
12 USER32!InternalCallWinProc+0x28
13 USER32!UserCallWinProc+0xf3 (FPO: [Non-Fpo])
14 USER32!DispatchMessageWorker+0x10e (FPO: [Non-Fpo])
15 USER32!DispatchMessageA+0xf (FPO: [Non-Fpo])
16 MFC71D!AfxInternalPumpMessage+0x100 (FPO: [Non-Fpo])
17 MFC71D!CWinThread::PumpMessage+0xc (FPO: [Non-Fpo])
18 MFC71D!CWinThread::Run+0x87 (FPO: [Non-Fpo])
19 MFC71D!CWinApp::Run+0x57 (FPO: [Non-Fpo])
1a MFC71D!AfxWinMain+0xda (FPO: [Non-Fpo])
1b 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]
1c mfcembed!WinMainCRTStartup(void)+0x1f2 (FPO: [Non-Fpo]) (CONV: cdecl) 
[f:\vs70builds\3077\vc\crtbld\crt\src\crtexe.c @ 390]
1d kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo])
This seems to happen when a record is deleted, so it could be that this deletion
is triggered during cancellation of a current load, so that the EvictionRank was
changed but not updated back to nsDiskCacheMap::UpdateRecord.
Note all the "Doom" calls...

By the way, because the record is deleted, it is not really a problem if it was
not updated correctly. Also the "evictionRank" table inside nsDiskCacheMap is
updated correctly, because it updates against the deletion of the "old"
evictionRank.

So, the assertion should probably be just removed?

It shows however that dooming is fishy business...
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P5
*** Bug 338629 has been marked as a duplicate of this bug. ***
-> reassign to default owner
Assignee: darin.moz → nobody
new cache code
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.