Closed Bug 243097 Opened 20 years ago Closed 7 years ago

[ASSERTION] pref handler leak

Categories

(Core :: Preferences: Backend, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: tenthumbs, Unassigned)

References

Details

(Keywords: assertion)

Attachments

(1 file)

With my Linux gtk1 trunk build on 20040508 I get this assertion at shutdown.

###!!! ASSERTION: Leaking the shared pref handler (and the prefservice,
presumably).: '!gSharedPrefHandler', file nsPrefsFactory.cpp, line 95
Break: at file nsPrefsFactory.cpp, line 95

This code was added in the patch for bug 241697.
CC'ing bsmedberg@covad.net. 
Yeah, that means that someone is leaking the prefservice. I just asserted it, I
didn't cause it.
OK, changing summary from "Assertion in nsPrefsFactory.cpp" to "[ASSERTION] 
pref handler leak."
Keywords: assertion
Summary: Assertion in nsPrefsFactory.cpp → [ASSERTION] pref handler leak
Blocks: 160540
Attached file gdb output
reproduced with today's cvs version
Some more data to this old problem. I use from todays cvs:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8b2) Gecko/20050407


(gdb) 
Continuing.
[Thread 49156 (LWP 1694) exited]
Could not write out perisistant registry!
--WEBSHELL == 0
--DOMWINDOW == 2
--DOMWINDOW == 1
--DOMWINDOW == 0
###!!! ASSERTION: Leaking the shared pref handler (and the prefservice, 
presumably).: '!gSharedPrefHandler', file nsPrefsFactory.cpp, line 95
Break: at file nsPrefsFactory.cpp, line 95
Suspending process; attach with the debugger.

Program received signal SIGSTOP, Stopped (signal).
[Switching to Thread 32769 (LWP 4732)]
0xb763ddec in poll () from /lib/libc.so.6
(gdb) info threads
* 2 Thread 32769 (LWP 4732)  0xb763ddec in poll () from /lib/libc.so.6
  1 Thread 16384 (LWP 4726)  0xb75a74a1 in kill () from /lib/libc.so.6
(gdb) thread 1
[Switching to thread 1 (Thread 16384 (LWP 4726))]#0  0xb75a74a1 in kill () from 
/lib/libc.so.6
(gdb) where
#0  0xb75a74a1 in kill () from /lib/libc.so.6
#1  0xb7f998ab in nsDebugImpl::Break (this=0x81c1b90, aFile=0xb7001730 
"nsPrefsFactory.cpp", aLine=95) at nsDebugImpl.cpp:333
#2  0xb7f99793 in nsDebugImpl::Assertion (this=0x81c1b90, 
    aStr=0xb7001758 "Leaking the shared pref handler (and the prefservice, 
presumably).", 
    aExpr=0xb7001743 "!gSharedPrefHandler", aFile=0xb7001730 "nsPrefsFactory.
cpp", aLine=95) at nsDebugImpl.cpp:294
#3  0xb7f120b8 in nsDebug::Assertion (aStr=0xb7001758 "Leaking the shared pref 
handler (and the prefservice, presumably).", 
    aExpr=0xb7001743 "!gSharedPrefHandler", aFile=0xb7001730 "nsPrefsFactory.
cpp", aLine=95) at nsDebug.cpp:108
#4  0xb6ffc214 in UnloadPrefsModule (unused=0x80f1d88) at nsPrefsFactory.cpp:95
#5  0xb7f13037 in nsGenericModule::Shutdown (this=0x80f1d88) at 
nsGenericFactory.cpp:344
#6  0xb7f12ae2 in ~nsGenericModule (this=0x80f1d88) at nsGenericFactory.cpp:241
#7  0xb7f12c1c in nsGenericModule::Release (this=0x80f1d88) at nsGenericFactory.
cpp:249
#8  0xb7f85663 in nsDll::Shutdown (this=0x80975d8) at xcDll.cpp:381
#9  0xb7f81352 in nsFreeLibrary (dll=0x80975d8, serviceMgr=0x0, when=3) at 
nsNativeComponentLoader.cpp:289
#10 0xb7f8154c in nsFreeLibraryEnum (aKey=0x80f1d28, aData=0x80975d8, 
closure=0xbfffe5e8) at nsNativeComponentLoader.cpp:360
#11 0xb7f23b68 in hashEnumerate (table=0x808db38, hdr=0x808e0fc, i=35, 
arg=0xbfffe5b0) at nsHashtable.cpp:131
#12 0xb7f1c9ee in PL_DHashTableEnumerate (table=0x808db38, etor=0xb7f23b32 
<hashEnumerate>, arg=0xbfffe5b0) at pldhash.c:619
#13 0xb7f244b3 in nsHashtable::Enumerate (this=0x808db30, aEnumFunc=0xb7f814f2 
<nsFreeLibraryEnum>, aClosure=0xbfffe5e8)
    at nsHashtable.cpp:319
#14 0xb7f834de in nsNativeComponentLoader::UnloadAll (this=0x808daf0, aWhen=3) 
at nsNativeComponentLoader.cpp:983
#15 0xb7f7cbc7 in nsComponentManagerImpl::UnloadLibraries (this=0x8087620, 
serviceMgr=0x0, aWhen=3)
    at nsComponentManager.cpp:3129
#16 0xb7f77423 in nsComponentManagerImpl::Shutdown (this=0x8087620) at 
nsComponentManager.cpp:900
#17 0xb7f1852e in NS_ShutdownXPCOM_P (servMgr=0x0) at nsXPComInit.cpp:825
#18 0x0804ec04 in main (argc=1, argv=0xbfffe7f4) at nsAppRunner.cpp:1839
(gdb) 


(gdb) bt full
#0  0xb75a74a1 in kill () from /lib/libc.so.6
No symbol table info available.
#1  0xb7f998ab in nsDebugImpl::Break (this=0x81c1b90, aFile=0xb7001730 
"nsPrefsFactory.cpp", aLine=95) at nsDebugImpl.cpp:333
        assertBehavior = 0xbffff495 "suspend"
#2  0xb7f99793 in nsDebugImpl::Assertion (this=0x81c1b90, 
    aStr=0xb7001758 "Leaking the shared pref handler (and the prefservice, 
presumably).", 
    aExpr=0xb7001743 "!gSharedPrefHandler", aFile=0xb7001730 "nsPrefsFactory.
cpp", aLine=95) at nsDebugImpl.cpp:294
        buf = "###!!! ASSERTION: Leaking the shared pref handler (and the 
prefservice, presumably).: '!gSharedPrefHandler', file nsPrefsFactory.cpp, line 
95\000\234\bö%Ö·(dà·pê\213\bpê\213\b¨]\f\b 
{î·\210àÿ¿\022\212å·Ðá¾\b\200ã\213\bpê\213\b)_ç·0,\222\b\004\000\000\000"...
#3  0xb7f120b8 in nsDebug::Assertion (aStr=0xb7001758 "Leaking the shared pref 
handler (and the prefservice, presumably).", 
    aExpr=0xb7001743 "!gSharedPrefHandler", aFile=0xb7001730 "nsPrefsFactory.
cpp", aLine=95) at nsDebug.cpp:108
No locals.
#4  0xb6ffc214 in UnloadPrefsModule (unused=0x80f1d88) at nsPrefsFactory.cpp:95
No locals.
#5  0xb7f13037 in nsGenericModule::Shutdown (this=0x80f1d88) at 
nsGenericFactory.cpp:344
        node = (nsGenericModule::FactoryNode *) 0x8081378
#6  0xb7f12ae2 in ~nsGenericModule (this=0x80f1d88) at nsGenericFactory.cpp:241
No locals.
#7  0xb7f12c1c in nsGenericModule::Release (this=0x80f1d88) at nsGenericFactory.
cpp:249
        count = 0
#8  0xb7f85663 in nsDll::Shutdown (this=0x80975d8) at xcDll.cpp:381
        refcnt = 3221218512
#9  0xb7f81352 in nsFreeLibrary (dll=0x80975d8, serviceMgr=0x0, when=3) at 
nsNativeComponentLoader.cpp:289
        rv = 2147500037
        dllMarkedForUnload = 0
        canUnload = 0
        mobj = {mRawPtr = 0x0}
#10 0xb7f8154c in nsFreeLibraryEnum (aKey=0x80f1d28, aData=0x80975d8, 
closure=0xbfffe5e8) at nsNativeComponentLoader.cpp:360
        dll = (nsDll *) 0x80975d8
        callData = (freeLibrariesClosure *) 0xbfffe5e8
#11 0xb7f23b68 in hashEnumerate (table=0x808db38, hdr=0x808e0fc, i=35, 
arg=0xbfffe5b0) at nsHashtable.cpp:131
        thunk = (_HashEnumerateArgs *) 0xbfffe5b0
        entry = (HTEntry *) 0x808e0fc
#12 0xb7f1c9ee in PL_DHashTableEnumerate (table=0x808db38, etor=0xb7f23b32 
<hashEnumerate>, arg=0xbfffe5b0) at pldhash.c:619
        entryAddr = 0x808e0fc "qê\021](\035\017\bØu\t\b"
        entryLimit = 0x808e8a0 ""
        i = 36
        capacity = 256
        entrySize = 12
        didRemove = 0
        entry = (PLDHashEntryHdr *) 0x808e0fc
        op = PL_DHASH_LOOKUP
#13 0xb7f244b3 in nsHashtable::Enumerate (this=0x808db30, aEnumFunc=0xb7f814f2 
<nsFreeLibraryEnum>, aClosure=0xbfffe5e8)
    at nsHashtable.cpp:319
        wasEnumerating = 0
        thunk = {fn = 0xb7f814f2 <nsFreeLibraryEnum>, arg = 0xbfffe5e8}
---Type <return> to continue, or q <return> to quit---
#14 0xb7f834de in nsNativeComponentLoader::UnloadAll (this=0x808daf0, aWhen=3) 
at nsNativeComponentLoader.cpp:983
        callData = {serviceMgr = 0x0, when = 3}
#15 0xb7f7cbc7 in nsComponentManagerImpl::UnloadLibraries (this=0x8087620, 
serviceMgr=0x0, aWhen=3)
    at nsComponentManager.cpp:3129
        rv = 0
        mon = {<nsAutoLockBase> = {mAddr = 0x808da80, mDown = 0x0, mType = 
nsAutoLockBase::eAutoMonitor}, 
  mMonitor = 0x808da80, mLockCount = 1}
#16 0xb7f77423 in nsComponentManagerImpl::Shutdown (this=0x8087620) at 
nsComponentManager.cpp:900
        i = 2
#17 0xb7f1852e in NS_ShutdownXPCOM_P (servMgr=0x0) at nsXPComInit.cpp:825
        rv = 0
        currentQ = {mRawPtr = 0x0}
#18 0x0804ec04 in main (argc=1, argv=0xbfffe7f4) at nsAppRunner.cpp:1839
        i = 1
        x11threadsafe = 0
        rv = 0
        dosplash = 0
        remoterv = 0
        argused = 0
        mainResult = 0
        nativeApp = (class nsINativeAppSupport *) 0x80c4b60
        splash = (class nsISplashScreen *) 0x0
(gdb) 
Is this still an issue?
(Filter "spam" on 'prefs-nobody-20080612'.)
Assignee: prefs → nobody
QA Contact: prefs
QA Contact: preferences → preferences-backend
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: