Closed Bug 270529 Opened 20 years ago Closed 8 years ago

###!!! ASSERTION: ### nsCacheEntryHashTable::AddEntry - entry already used: '((nsCacheEntryHashTableEntry *)hashEntry)->cacheEntry == 0', file r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp, line 467

Categories

(Core :: Networking: Cache, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: timeless, Unassigned)

References

()

Details

(Keywords: assertion, helpwanted)

Error loading URL
https://bugzilla.mozilla.org/attachment.cgi?id=163509&action=view : 804b0002
###!!! ASSERTION: ### nsCacheEntryHashTable::AddEntry - entry already used:
'((nsCacheEntryHashTableEntry *)hashEntry)->cacheEntry == 0', file
r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp, line 467

 	xpcom_core.dll!nsDebug::Assertion(const char * aStr=0x0147966c, const char *
aExpr=0x01479630, const char * aFile=0x01479600, int aLine=0x000001d3)  Line 109	C++
 	necko.dll!nsCacheEntryHashTable::AddEntry(nsCacheEntry *
cacheEntry=0x03724d20)  Line 467 + 0x23	C++
 	necko.dll!nsCacheService::ActivateEntry(nsCacheRequest * request=0x03943ee8,
nsCacheEntry * * result=0x0012a820)  Line 948 + 0xf	C++
 	necko.dll!nsCacheService::ProcessRequest(nsCacheRequest * request=0x03943ee8,
int calledFromOpenCacheEntry=0x00000001, nsICacheEntryDescriptor * *
result=0x02fcd8d8)  Line 797 + 0x10	C++
 	necko.dll!nsCacheService::OpenCacheEntry(nsCacheSession * session=0x037857d8,
const char * key=0x0363a6c0, int accessRequested=0x00000002, int
blockingMode=0x00000000, nsICacheListener * listener=0x00000000,
nsICacheEntryDescriptor * * result=0x02fcd8d8)  Line 873 + 0x15	C++
 	necko.dll!nsCacheSession::OpenCacheEntry(const char * key=0x0363a6c0, int
accessRequested=0x00000002, int blockingMode=0x00000000, nsICacheEntryDescriptor
* * result=0x02fcd8d8)  Line 98 + 0x1b	C++
 	necko.dll!nsHttpChannel::OpenCacheEntry(int offline=0x00000000, int *
delayed=0x0012a998)  Line 1219 + 0x53	C++
 	necko.dll!nsHttpChannel::Connect(int firstTime=0x00000001)  Line 312 + 0x10	C++
 	necko.dll!nsHttpChannel::AsyncOpen(nsIStreamListener * listener=0x02e99280,
nsISupports * context=0x00000000)  Line 3141 + 0xa	C++
 	docshell.dll!nsDocumentOpenInfo::Open(nsIChannel * aChannel=0x02fcd7d0)  Line
222 + 0x12	C++
 	docshell.dll!nsURILoader::OpenURI(nsIChannel * channel=0x02fcd7d0, int
aIsContentPreferred=0x00000000, nsIInterfaceRequestor *
aWindowContext=0x03cc6110)  Line 846 + 0x13	C++
 	docshell.dll!nsDocShell::DoChannelLoad(nsIChannel * aChannel=0x02fcd7d0,
nsIURILoader * aURILoader=0x01164cc8)  Line 5814 + 0x3f	C++
 	docshell.dll!nsDocShell::DoURILoad(nsIURI * aURI=0x04644ab0, nsIURI *
aReferrerURI=0x00000000, nsISupports * aOwner=0x00000000, const char *
aTypeHint=0x02fc4998, nsIInputStream * aPostData=0x00000000, nsIInputStream *
aHeadersData=0x00000000, int firstParty=0x00000001, nsIDocShell * *
aDocShell=0x00000000, nsIRequest * * aRequest=0x00000000)  Line 5587 + 0x26	C++
 	docshell.dll!nsDocShell::InternalLoad(nsIURI * aURI=0x04644ab0, nsIURI *
aReferrer=0x00000000, nsISupports * aOwner=0x00000000, int
aInheritOwner=0x00000000, const unsigned short * aWindowTarget=0x00000000, const
char * aTypeHint=0x02fc4998, nsIInputStream * aPostData=0x00000000,
nsIInputStream * aHeadersData=0x00000000, unsigned int aLoadType=0x03000002,
nsISHEntry * aSHEntry=0x046ee104, int firstParty=0x00000001, nsIDocShell * *
aDocShell=0x00000000, nsIRequest * * aRequest=0x00000000)  Line 5377 + 0x37	C++
 	docshell.dll!nsDocShell::LoadHistoryEntry(nsISHEntry * aEntry=0x046ee104,
unsigned int aLoadType=0x03000002)  Line 6409 + 0x46	C++
 	docshell.dll!nsDocShell::LoadURI(nsIURI * aURI=0x04644ab0, nsIDocShellLoadInfo
* aLoadInfo=0x046fc7c0, unsigned int aLoadFlags=0x00000000, int
firstParty=0x00000000)  Line 726 + 0x1c	C++
 	docshell.dll!nsSHistory::InitiateLoad(nsISHEntry * aFrameEntry=0x046ee104,
nsIDocShell * aFrameDS=0x03cc60e8, long aLoadType=0x00000006)  Line 874 + 0x22	C++
 	docshell.dll!nsSHistory::LoadEntry(int aIndex=0x00000000, long
aLoadType=0x00000006, unsigned int aHistCmd=0x00000003)  Line 790 + 0x1e	C++
 	docshell.dll!nsSHistory::Reload(unsigned int aReloadFlags=0x00000300)  Line
615	C++
 	xpcom_core.dll!XPTC_InvokeByIndex(nsISupports * that=0x03ceccf8, unsigned int
methodIndex=0x00000009, unsigned int paramCount=0x00000001, nsXPTCVariant *
params=0x0012b2c8)  Line 102	C++
 	xpc3250.dll!XPCWrappedNative::CallMethod(XPCCallContext & ccx={...},
XPCWrappedNative::CallMode mode=CALL_METHOD)  Line 2037 + 0x1e	C++
 	xpc3250.dll!XPC_WN_CallMethod(JSContext * cx=0x038a3dd0, JSObject *
obj=0x047495c0, unsigned int argc=0x00000001, long * argv=0x0470c57c, long *
vp=0x0012b594)  Line 1287 + 0xb	C++
 	js3250.dll!js_Invoke(JSContext * cx=0x038a3dd0, unsigned int argc=0x00000001,
unsigned int flags=0x00000000)  Line 1286 + 0x20	C
 	js3250.dll!js_Interpret(JSContext * cx=0x038a3dd0, long * result=0x0012c024) 
Line 3509 + 0xf	C
 	js3250.dll!js_Invoke(JSContext * cx=0x038a3dd0, unsigned int argc=0x00000001,
unsigned int flags=0x00000002)  Line 1306 + 0xd	C
 	js3250.dll!js_InternalInvoke(JSContext * cx=0x038a3dd0, JSObject *
obj=0x04749488, long fval=0x047494b0, unsigned int flags=0x00000000, unsigned
int argc=0x00000001, long * argv=0x0012c324, long * rval=0x0012c328)  Line
1430 + 0x14	C
 	js3250.dll!JS_CallFunctionValue(JSContext * cx=0x038a3dd0, JSObject *
obj=0x04749488, long fval=0x047494b0, unsigned int argc=0x00000001, long *
argv=0x0012c324, long * rval=0x0012c328)  Line 3783 + 0x1f	C
 	gklayout.dll!nsJSContext::CallEventHandler(JSObject * aTarget=0x04749488,
JSObject * aHandler=0x047494b0, unsigned int argc=0x00000001, long *
argv=0x0012c324, long * rval=0x0012c328)  Line 1361 + 0x21	C++
 	gklayout.dll!nsJSEventListener::HandleEvent(nsIDOMEvent * aEvent=0x03658a40) 
Line 205 + 0x2d	C++
 	gklayout.dll!nsXBLPrototypeHandler::ExecuteHandler(nsIDOMEventReceiver *
aReceiver=0x037eca00, nsIDOMEvent * aEvent=0x03658a40)  Line 491	C++
 	gklayout.dll!nsXBLWindowHandler::WalkHandlersInternal(nsIDOMEvent *
aEvent=0x03658a40, nsIAtom * aEventType=0x0034fc28, nsXBLPrototypeHandler *
aHandler=0x03ce86c0)  Line 301 + 0x18	C++
 	gklayout.dll!nsXBLWindowKeyHandler::WalkHandlers(nsIDOMEvent *
aKeyEvent=0x03658a40, nsIAtom * aEventType=0x0034fc28)  Line 197	C++
 	gklayout.dll!nsXBLWindowKeyHandler::KeyPress(nsIDOMEvent *
aKeyEvent=0x03658a40)  Line 250	C++
 	gklayout.dll!DispatchToInterface(nsIDOMEvent * aEvent=0x03658a40,
nsIDOMEventListener * aListener=0x039a8018, unsigned int (nsIDOMEvent *)*
aMethod=0x01bd9f20, const nsID & aIID={...}, int * aHasInterface=0x0012cb8c) 
Line 128 + 0xb	C++
 	gklayout.dll!nsEventListenerManager::HandleEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, nsIDOMEventTarget * aCurrentTarget=0x0398f738, unsigned
int aFlags=0x00000202, nsEventStatus * aEventStatus=0x0012f4a8)  Line 1609 +
0x23	C++
 	gklayout.dll!nsXULDocument::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 1238	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2843 + 0x33	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsXULElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000202, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2837 + 0x3c	C++
 	gklayout.dll!nsGenericElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x0012ef48, unsigned int aFlags=0x00000207, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 2028 + 0x3c	C++
 	gklayout.dll!nsHTMLInputElement::HandleDOMEvent(nsPresContext *
aPresContext=0x0396fab8, nsEvent * aEvent=0x0012f6c8, nsIDOMEvent * *
aDOMEvent=0x00000000, unsigned int aFlags=0x00000201, nsEventStatus *
aEventStatus=0x0012f4a8)  Line 1365 + 0x1f	C++
 	gklayout.dll!PresShell::HandleEventInternal(nsEvent * aEvent=0x0012f6c8,
nsIView * aView=0x03c08d50, unsigned int aFlags=0x00000001, nsEventStatus *
aStatus=0x0012f4a8)  Line 5983 + 0x3a	C++
 	gklayout.dll!PresShell::HandleEvent(nsIView * aView=0x03c08d50, nsGUIEvent *
aEvent=0x0012f6c8, nsEventStatus * aEventStatus=0x0012f4a8, int
aForceHandle=0x00000001, int & aHandled=0x00000001)  Line 5813 + 0x19	C++
 	gklayout.dll!nsViewManager::HandleEvent(nsView * aView=0x03c08d50, nsGUIEvent
* aEvent=0x0012f6c8, int aCaptured=0x00000000)  Line 2356	C++
 	gklayout.dll!nsViewManager::DispatchEvent(nsGUIEvent * aEvent=0x0012f6c8,
nsEventStatus * aStatus=0x0012f610)  Line 2129 + 0x14	C++
 	gklayout.dll!HandleEvent(nsGUIEvent * aEvent=0x0012f6c8)  Line 166	C++
 	gkwidget.dll!nsWindow::DispatchEvent(nsGUIEvent * event=0x0012f6c8,
nsEventStatus & aStatus=nsEventStatus_eIgnore)  Line 1074 + 0xa	C++
 	gkwidget.dll!nsWindow::DispatchWindowEvent(nsGUIEvent * event=0x0012f6c8) 
Line 1095	C++
 	gkwidget.dll!nsWindow::DispatchKeyEvent(unsigned int aEventType=0x00000083,
unsigned short aCharCode=0x0052, unsigned int aVirtualCharCode=0x00000000, long
aKeyData=0x00000000)  Line 3003 + 0xf	C++
 	gkwidget.dll!nsWindow::OnChar(unsigned int charCode=0x00000000)  Line 3210	C++
 	gkwidget.dll!nsWindow::ProcessMessage(unsigned int msg=0x00000102, unsigned
int wParam=0x00000012, long lParam=0x40130001, long * aRetValue=0x0012fbb8) 
Line 3893 + 0xf	C++
 	gkwidget.dll!nsWindow::WindowProc(HWND__ * hWnd=0x00161d8c, unsigned int
msg=0x00000102, unsigned int wParam=0x00000012, long lParam=0x40130001)  Line
1355 + 0x1b	C++
 	user32.dll!77d43a50() 	
 	user32.dll!77d43b1f() 	
 	user32.dll!GetMessageW()  + 0x125	
 	user32.dll!DispatchMessageW()  + 0xb	
 	appcomps.dll!nsAppStartup::Run()  Line 221	C++
 	mozilla.exe!main1(int argc=0x00000001, char * * argv=0x00347b80, nsISupports *
nativeApp=0x0109ef38)  Line 1321 + 0x20	C++
 	mozilla.exe!main(int argc=0x00000001, char * * argv=0x00347b80)  Line 1813 +
0x25	C++
 	mozilla.exe!mainCRTStartup()  Line 400 + 0x11	C
 	kernel32.dll!TermsrvAppInstallMode()  + 0x269	

dougt: so why'd you decide that the assert was good enough for everyone but you?

triggered while (re)loading attachment 163509 [details]
i'm playing w/ browser.frames.enabled
i don't like a noisy build. :-) /me ducks.
note: the url from comment 0 causes a crash here
this is getting fairly annoying, if it's an acceptable behavior, then let's 
ditch the assert, if we're leaking or don't want this to happen, let's fix it.

0:000> dpa @@(&$!cacheEntry->mKey->mData)
043de854  030e8a00 "HTTP:http://landfill.mozilla.org/ryl/random.html"

darin: steps.
1. run mfcembed or your favorite equivalent
2. set your homepage to the url listed in the cacheEntry above
3. open 20 windows
4. wait a while
5. every now and then as a page walks out of the browser buster frameset, use 
go>home (or however your mfcembed equivalent lets you get back to the homepage).

expected results: no necko asserts that dougt ignores.

 # 
00 ntdll!DbgBreakPoint (FPO: [0,0,0])
01 xpcom_core!nsDebugImpl::Break(char * aFile = 
0x0147ec94 "r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp", int aLine = 0x1d2)
+0x7e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\base\nsdebugimpl.cpp @ 
350]
02 xpcom_core!nsDebugImpl::Assertion(char * aStr = 0x0147ed00 "### 
nsCacheEntryHashTable::AddEntry - entry already used", char * aExpr = 
0x0147ecc4 "((nsCacheEntryHashTableEntry *)hashEntry)->cacheEntry == 0", char * 
aFile = 0x0147ec94 "r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp", int aLine = 
0x1d2)+0x29e (FPO: [Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\xpcom\base\nsdebugimpl.cpp @ 266]
03 xpcom_core!nsDebug::Assertion(char * aStr = 0x0147ed00 "### 
nsCacheEntryHashTable::AddEntry - entry already used", char * aExpr = 
0x0147ecc4 "((nsCacheEntryHashTableEntry *)hashEntry)->cacheEntry == 0", char * 
aFile = 0x0147ec94 "r:/mozilla/netwerk/cache/src/nsCacheEntry.cpp", int aLine = 
0x1d2)+0x4d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\dbg-i686-pc-
cygwin\xpcom\build\nsdebug.cpp @ 109]
04 necko!nsCacheEntryHashTable::AddEntry(class nsCacheEntry * cacheEntry = 
0x03c3aae0)+0x8b (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nscacheentry.cpp @ 466]
05 necko!nsCacheService::ActivateEntry(class nsCacheRequest * request = 
0x06a3c360, class nsCacheEntry ** result = 0x0012f00c)+0x204 (FPO: [Non-Fpo]) 
(CONV: thiscall) [r:\mozilla\netwerk\cache\src\nscacheservice.cpp @ 965]
06 necko!nsCacheService::ProcessRequest(class nsCacheRequest * request = 
0x06a3c360, int calledFromOpenCacheEntry = 1, class nsICacheEntryDescriptor ** 
result = 0x061333d4)+0x43 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\cache\src\nscacheservice.cpp @ 814]
07 necko!nsCacheService::OpenCacheEntry(class nsCacheSession * session = 
0x02765108, class nsACString_internal * key = 0x0012f0ec, int accessRequested = 
2, int blockingMode = 0, class nsICacheListener * listener = 0x00000000, class 
nsICacheEntryDescriptor ** result = 0x061333d4)+0xb3 (FPO: [Non-Fpo]) (CONV: 
cdecl) [r:\mozilla\netwerk\cache\src\nscacheservice.cpp @ 890]
08 necko!nsCacheSession::OpenCacheEntry(class nsACString_internal * key = 
0x0012f0ec, int accessRequested = 2, int blockingMode = 0, class 
nsICacheEntryDescriptor ** result = 0x061333d4)+0x1f (FPO: [Non-Fpo]) (CONV: 
stdcall) [r:\mozilla\netwerk\cache\src\nscachesession.cpp @ 98]
09 necko!nsHttpChannel::OpenCacheEntry(int offline = 0, int * delayed = 
0x0012f18c)+0x2ea (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\netwerk\protocol\http\src\nshttpchannel.cpp @ 1258]
0a necko!nsHttpChannel::Connect(int firstTime = 1)+0x174 (FPO: [Non-Fpo]) 
(CONV: thiscall) [r:\mozilla\netwerk\protocol\http\src\nshttpchannel.cpp @ 321]
0b necko!nsHttpChannel::AsyncOpen(class nsIStreamListener * listener = 
0x044c2a68, class nsISupports * context = 0x00000000)+0x292 (FPO: [Non-Fpo]) 
(CONV: stdcall) [r:\mozilla\netwerk\protocol\http\src\nshttpchannel.cpp @ 3296]
0c docshell!nsDocumentOpenInfo::Open(class nsIChannel * aChannel = 0x061332c8)
+0x74 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\uriloader\base\nsuriloader.cpp @ 224]
0d docshell!nsURILoader::OpenURI(class nsIChannel * channel = 0x061332c8, int 
aIsContentPreferred = 0, class nsIInterfaceRequestor * aWindowContext = 
0x03b986c0)+0x498 (FPO: [Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\uriloader\base\nsuriloader.cpp @ 915]
0e docshell!nsDocShell::DoChannelLoad(class nsIChannel * aChannel = 0x061332c8, 
class nsIURILoader * aURILoader = 0x0274e688)+0x17b (FPO: [Non-Fpo]) (CONV: 
thiscall) [r:\mozilla\docshell\base\nsdocshell.cpp @ 6757]
0f docshell!nsDocShell::DoURILoad(class nsIURI * aURI = 0x076191c8, class 
nsIURI * aReferrerURI = 0x076191c8, int aSendReferrer = 0, class nsISupports * 
aOwner = 0x04b00328, char * aTypeHint = 0x00000000 "", class nsIInputStream * 
aPostData = 0x00000000, class nsIInputStream * aHeadersData = 0x00000000, int 
aFirstParty = 1, class nsIDocShell ** aDocShell = 0x00000000, class nsIRequest 
** aRequest = 0x0012f630)+0x80b (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\docshell\base\nsdocshell.cpp @ 6609]
10 docshell!nsDocShell::InternalLoad(class nsIURI * aURI = 0x076191c8, class 
nsIURI * aReferrer = 0x076191c8, class nsISupports * aOwner = 0x00000000, 
unsigned int aFlags = 3, unsigned short * aWindowTarget = 0x04147028 "", char * 
aTypeHint = 0x00000000 "", class nsIInputStream * aPostData = 0x00000000, class 
nsIInputStream * aHeadersData = 0x00000000, unsigned int aLoadType = 0x100001, 
class nsISHEntry * aSHEntry = 0x00000000, int aFirstParty = 1, class 
nsIDocShell ** aDocShell = 0x00000000, class nsIRequest ** aRequest = 
0x00000000)+0x1252 (FPO: [Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\docshell\base\nsdocshell.cpp @ 6382]
11 docshell!nsDocShell::LoadURI(class nsIURI * aURI = 0x076191c8, class 
nsIDocShellLoadInfo * aLoadInfo = 0x05a3a468, unsigned int aLoadFlags = 0, int 
aFirstParty = 1)+0x8ca (FPO: [Non-Fpo]) (CONV: stdcall) 
[r:\mozilla\docshell\base\nsdocshell.cpp @ 789]
12 docshell!nsRefreshTimer::Notify(class nsITimer * aTimer = 0x065911c0)+0x3bb 
(FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\docshell\base\nsdocshell.cpp @ 
8064]
13 xpcom_core!nsTimerImpl::Fire(void)+0x243 (FPO: [Non-Fpo]) (CONV: thiscall) 
[r:\mozilla\xpcom\threads\nstimerimpl.cpp @ 398]
14 xpcom_core!handleTimerEvent(struct TimerEventType * event = 0x03378d10)+0xea 
(FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\nstimerimpl.cpp @ 461]
15 xpcom_core!PL_HandleEvent(struct PLEvent * self = 0x03378d10)+0x3d (FPO: 
[Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 685]
16 xpcom_core!PL_ProcessPendingEvents(struct PLEventQueue * self = 0x010f3ea8)
+0xc7 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 620]
17 xpcom_core!nsEventQueueImpl::ProcessPendingEvents(void)+0x5a (FPO: [Non-
Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\threads\nseventqueue.cpp @ 417]
18 gkwidget!nsWindow::DispatchPendingEvents(void)+0x7f (FPO: [Non-Fpo]) (CONV: 
thiscall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 4127]
19 gkwidget!nsWindow::ProcessMessage(unsigned int msg = 0x101, unsigned int 
wParam = 0x48, long lParam = 0xc0230001, long * aRetValue = 0x0012fd50)+0x781 
(FPO: [Non-Fpo]) (CONV: thiscall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 
4328]
1a gkwidget!nsWindow::WindowProc(struct HWND__ * hWnd = 0x001a03a2, unsigned 
int msg = 0x101, unsigned int wParam = 0x48, long lParam = 0xc0230001)+0x134 
(FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 
1349]
1b USER32!InternalCallWinProc+0x28
1c USER32!UserCallWinProcCheckWow+0x150 (FPO: [Non-Fpo])
1d USER32!DispatchMessageWorker+0x306 (FPO: [Non-Fpo])
1e USER32!DispatchMessageA+0xf (FPO: [Non-Fpo])
1f MFC71D!AfxInternalPumpMessage+0x100 (FPO: [Non-Fpo])
20 MFC71D!CWinThread::PumpMessage+0xc (FPO: [Non-Fpo])
21 MFC71D!CWinThread::Run+0x87 (FPO: [Non-Fpo])
22 MFC71D!CWinApp::Run+0x57 (FPO: [Non-Fpo])
23 MFC71D!AfxWinMain+0xda (FPO: [Non-Fpo])
24 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]
25 mfcembed!WinMainCRTStartup(void)+0x1f2 (FPO: [Non-Fpo]) (CONV: cdecl) 
[f:\vs70builds\3077\vc\crtbld\crt\src\crtexe.c @ 390]
26 kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo])
Blocks: 289237
Keywords: helpwanted
As far as I can see is that the Hashtable code doesn't (cannot!) do anything
with the 'cacheEntry' member. PL_DHASH_ADD normally returns a new entry with all
members set to zero (except for the key), however when the entry is re-used
(after deletion) and the same hash for the same or other key used again, the
entry may be re-used and non-zero therefor. ClearEntry should normally called by
the pldhash code when removing entries from the table, but apparently it
sometimes doesn't?

This is not a problem in itself, as 'cacheEntry' is then always set to the
desired value. This can not create a crash or cause memory leaks. This is just
about re-using current entries in the pool within the hashtable system itself...

Note the note in :
http://lxr.mozilla.org/seamonkey/source/xpcom/ds/pldhash.h#326

I propose to remove the 'assert'. 
-> default owner
Assignee: darin → nobody
whole 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.