Closed Bug 368289 Opened 18 years ago Closed 17 years ago

ASSERTION: Expected only one call!: '!gCallCount++', file xptiInterfaceInfoManager.cpp, line 229

Categories

(Core :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: mmokrejs, Unassigned)

References

Details

Attachments

(1 file)

User-Agent: Opera/9.10 (X11; Linux i686; U; en) Build Identifier: I have jsut started seamonkey (browser window) and run ctrl+q to immediately quit. Here is the result. (gdb) where #0 Break (aMsg=0xbfbd3050 "###!!! ASSERTION: Expected only one call!: '!gCallCount++', file xptiInterfaceInfoManager.cpp, line 229") at nsDebugImpl.cpp:472 #1 0xb7ea96e9 in NS_DebugBreak_P (aSeverity=1, aStr=0xb7ef2c98 "Expected only one call!", aExpr=0xb7ef2c8a "!gCallCount++", aFile=0xb7ef23ed "xptiInterfaceInfoManager.cpp", aLine=229) at nsDebugImpl.cpp:350 #2 0xb7ebef17 in xptiInterfaceInfoManager::BuildFileSearchPath (aPath=0xbfbd34e0) at xptiInterfaceInfoManager.cpp:229 #3 0xb7ebf7a9 in xptiInterfaceInfoManager::GetInterfaceInfoManagerNoAddRef () at xptiInterfaceInfoManager.cpp:64 #4 0xb7eb8b2d in xptiInterfaceInfoManager::GetInfoMonitor (self=0x0) at xptiprivate.h:904 #5 0xb7eb6a06 in xptiInterfaceInfo::Release (this=0x813e548) at xptiInterfaceInfo.cpp:790 #6 0xb6e0f77a in ~nsCOMPtr (this=0x813a658) at ../../../../dist/include/xpcom/nsCOMPtr.h:583 #7 0xb6e47a92 in ~XPCNativeInterface (this=0x813a658) at xpcprivate.h:1298 #8 0xb6e44d99 in XPCNativeInterface::DestroyInstance (cx=0x8cbd8b0, rt=0x812ef18, inst=0x813a658) at xpcwrappednativeinfo.cpp:504 #9 0xb6e273e1 in NativeInterfaceSweeper (table=0x812f730, hdr=0x87d3928, number=13, arg=0xbfbd370c) at xpcjsruntime.cpp:138 #10 0xb7d1fe1f in JS_DHashTableEnumerate (table=0x812f730, etor=0xb6e2737a <NativeInterfaceSweeper>, arg=0xbfbd370c) at jsdhash.c:674 #11 0xb6e27a35 in IID2NativeInterfaceMap::Enumerate (this=0x812ede8, f=0xb6e2737a <NativeInterfaceSweeper>, arg=0xbfbd370c) at xpcmaps.h:326 #12 0xb6e27040 in XPCJSRuntime::GCCallback (cx=0x8cbd8b0, status=JSGC_FINALIZE_END) at xpcjsruntime.cpp:454 #13 0xb6c91b70 in jsds_GCCallbackProc (cx=0x8cbd8b0, status=JSGC_FINALIZE_END) at jsd_xpc.cpp:519 #14 0xb66d2f43 in DOMGCCallback (cx=0x8cbd8b0, status=JSGC_FINALIZE_END) at nsJSEnvironment.cpp:3251 #15 0xb7d4485a in js_GC (cx=0x8cbd8b0, gckind=GC_NORMAL) at jsgc.c:3162 #16 0xb7d13cd9 in js_DestroyContext (cx=0x8cbd8b0, mode=JSDCM_FORCE_GC) at jscntxt.c:407 #17 0xb7d01c84 in JS_DestroyContext (cx=0x8cbd8b0) at jsapi.c:979 #18 0xb6e2e25e in ~XPCJSContextStack (this=0x80bcea8) at xpcthreadcontext.cpp:61 #19 0xb6e2d68b in XPCPerThreadData::Cleanup (this=0x80bcfd8) at xpcthreadcontext.cpp:460 #20 0xb6e2d81f in ~XPCPerThreadData (this=0x80bcfd8) at xpcthreadcontext.cpp:469 #21 0xb6e2d90b in xpc_ThreadDataDtorCB (ptr=0x80bcfd8) at xpcthreadcontext.cpp:504 #22 0xb7cb7056 in _PR_DestroyThreadPrivate (self=0x8089548) at prtpd.c:265 #23 0xb7cd3726 in _pt_thread_death (arg=0x8089548) at ptthread.c:825 #24 0xb7cd3a9b in _PR_Fini () at ptthread.c:999 #25 0xb7cabe08 in __do_global_dtors_aux () from ./libnspr4.so #26 0xb7cd9120 in _fini () from ./libnspr4.so #27 0xb7f52f67 in _dl_fini () from /lib/ld-linux.so.2 #28 0xb747ba74 in exit () from /lib/libc.so.6 #29 0xb746682c in __libc_start_main () from /lib/libc.so.6 #30 0x0804a455 in _start () (gdb) I have configured few hours old cvs HEAD checkout tree with: ./configure --disable-optimize --enable-debug='-g3 -O0 -ggdb' --enable-debug-modules=all --enable-debugger-info-modules --enable-detect-webshell-leaks --disable-svg --enable-image-decoders=all --with-qtdir=/usr/qt/3 --enable-application=suite --disable-freetype2 --enable-jprof --enable-default-toolkit=gtk2 --enable-xft --disable-gssapi Reproducible: Always Steps to Reproduce: 1. 2. 3.
Attached file full gdb backtrace
Right (firefox too). This started happening when bug 362768 landed. After the !gCallCount++ assertion, I also see these, which also started appearing at the same time: ASSERTION: can't get xpt search path!: 'Error', file mozilla/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp, line 67 ASSERTION: null monitor: 'mMonitor', file ../../dist/include/xpcom/nsAutoLock.h, line 284
Assignee: general → nobody
Blocks: 362768
Status: UNCONFIRMED → NEW
Ever confirmed: true
Product: Mozilla Application Suite → Core
QA Contact: general → general
Version: unspecified → Trunk
Brendan, could you ask the appropriate JavaScript developer to look at this bug? It is caused by my NSPR in bug 362768 to always clean up the PRThread structure for the primordial thread on process exit. Part of the cleanup is to run the thread-private data destructors, and we are getting assertion failures in the destructor xpc_ThreadDataDtorCB registered by JavaScript. I'm willing to change my patch to not call thread-private data destructors when NSPR cleans up the primordial thread, but I'd like a JavaScript developer to look at these assertion failures first.
Blocks: fx-noise
Summary: ASSERTION: Expected only one call!: '!gCallCount++', file xptiInterfaceInfoManager.cpp, line 229") at nsDebugImpl.cpp:472 → ASSERTION: Expected only one call!: '!gCallCount++', file xptiInterfaceInfoManager.cpp, line 229
I see this when I quit Firefox, but only when there are large leaks (domwindows?).
I've changed NSPR's _PR_Fini function to not call thread-private data destructors when cleaning up the primordial thread, so this bug has been fixed.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
The fix was committed in bug 383977 comment 10.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: