Closed
Bug 16900
Opened 25 years ago
Closed 25 years ago
Viewer application sucks up 99% of CPU after quitting.
Categories
(Core Graveyard :: Viewer App, defect, P3)
Tracking
(Not tracked)
VERIFIED
FIXED
M11
People
(Reporter: dejong, Assigned: danm.moz)
Details
CVS build from 10/18/99. Built on RedHat Linux 5.2 (Intel).
When I quit viewer it does not actually exit the application. It just sits
there sucking up 99% of the CPU. Here is the output that is displayed
when viewer is sucking up 99% of the CPU.
mo(~/project/mozilla/mozilla/dist/bin)% ./viewer
Warning: MOZILLA_FIVE_HOME not set.
nsNativeComponentLoader: autoregistering begins.
nsNativeComponentLoader: autoregistering succeeded
nsUnixToolkitService: Using 'gtk' for the Widget Toolkit.
nsUnixToolkitService: Using 'gtk' for the Gfx Toolkit.
NS_SetupRegistry() MOZ_TOOLKIT=gtk, WIDGET_DLL=libwidget_gtk.so,
GFX_DLL=libgfx_gtk.so
Going to create the event queue
GFX: dpi=100 t2p=0.0694444 p2t=14.4 depth=16
Using '/home/mo/project/mozilla/mozilla/dist/bin' as the resource: base
Got the event queue from the service
Calling gdk_input_add with event queue
Note: styleverifytree is disabled
Note: frameverifytree is disabled
Note: verifyreflow is disabled
Going to destroy the event queue
It seems to get getting stuck in a mutex or something.
When I interput it seems to be getting stuck here.
#0 __pthread_mutex_lock (mutex=0x80c8f20) at mutex.c:95
#1 0x401c6b34 in PR_Lock (lock=0x80c8f20) at ptsynch.c:167
#2 0x4017b9a5 in nsAutoLock::nsAutoLock (this=0xbffff2a8, aLock=0x80c8f20)
at ../../dist/include/nsAutoLock.h:129
#3 0x4012a181 in nsObserverList::RemoveObserver (this=0x80acbd8,
anObserver=0xbffff384) at nsObserverList.cpp:98
#4 0x4012a9ea in nsObserverService::RemoveObserver (this=0x80b6ec0,
anObserver=0x80acb9c, aTopic=0xbffff3f8) at nsObserverService.cpp:180
#5 0x40564a25 in nsAppShell::RegisterObserver (this=0x80acb98, aRegister=0)
at nsAppShell.cpp:491
#6 0x40563c40 in nsAppShell::~nsAppShell (this=0x80acb98, __in_chrg=3)
at nsAppShell.cpp:143
#7 0x40563d45 in nsAppShell::Release (this=0x80acb98) at nsAppShell.cpp:152
#8 0x4013798c in nsSupportsArray::Clear (this=0x80c9018)
at nsSupportsArray.cpp:314
#9 0x40136feb in nsSupportsArray::DeleteArray (this=0x80c9018)
at nsSupportsArray.cpp:58
#10 0x40136d14 in nsSupportsArray::~nsSupportsArray (this=0x80c9018,
__in_chrg=3) at nsSupportsArray.cpp:35
#11 0x40136ec8 in nsSupportsArray::Release (this=0x80c9018)
at nsSupportsArray.cpp:54
#12 0x4012a041 in nsObserverList::~nsObserverList (this=0x80acbd8, __in_chrg=3)
at nsObserverList.cpp:65
#13 0x40129e2e in nsObserverList::Release (this=0x80acbd8)
at nsObserverList.cpp:36
#14 0x4012a6ce in ReleaseObserverList (aKey=0x80c8f78, aData=0x80acbd8,
closure=0x0) at nsObserverService.cpp:93
#15 0x4012877c in _hashEnumerateRemove (he=0x80acbf0, i=2, arg=0xbffff670)
at nsHashtable.cpp:223
#16 0x40198155 in PL_HashTableEnumerateEntries (ht=0x80c7fe8,
f=0x40128740 <_hashEnumerateRemove(PLHashEntry *, int, void *)>,
arg=0xbffff670) at plhash.c:368
#17 0x40128812 in nsHashtable::Reset (this=0x80c7fc8,
destroyFunc=0x4012a6a4 <ReleaseObserverList(nsHashKey *, void *, void *)>,
closure=0x0) at nsHashtable.cpp:239
#18 0x40128ca2 in nsObjectHashtable::Reset (this=0x80c7fc8)
at nsHashtable.cpp:361
#19 0x40128b6e in nsObjectHashtable::~nsObjectHashtable (this=0x80c7fc8,
__in_chrg=3) at nsHashtable.cpp:327
#20 0x4012a545 in nsObserverService::~nsObserverService (this=0x80b6ec0,
__in_chrg=3) at nsObserverService.cpp:58
#21 0x4012a39a in nsObserverService::Release (this=0x80b6ec0)
at nsObserverService.cpp:41
#22 0x4015a12c in DeleteEntry (aKey=0x80c7f98, aData=0x80c7f80, closure=0x0)
at nsServiceManager.cpp:168
#23 0x4012877c in _hashEnumerateRemove (he=0x80c7fb0, i=10, arg=0xbffff76c)
at nsHashtable.cpp:223
#24 0x40198155 in PL_HashTableEnumerateEntries (ht=0x807c028,
f=0x40128740 <_hashEnumerateRemove(PLHashEntry *, int, void *)>,
arg=0xbffff76c) at plhash.c:368
#25 0x40128812 in nsHashtable::Reset (this=0x807c008,
destroyFunc=0x4015a0f0 <DeleteEntry(nsHashKey *, void *, void *)>,
closure=0x0) at nsHashtable.cpp:239
#26 0x40128ca2 in nsObjectHashtable::Reset (this=0x807c008)
at nsHashtable.cpp:361
#27 0x40128b6e in nsObjectHashtable::~nsObjectHashtable (this=0x807c008,
__in_chrg=3) at nsHashtable.cpp:327
#28 0x4015a288 in nsServiceManagerImpl::~nsServiceManagerImpl (this=0x807bff0,
__in_chrg=3) at nsServiceManager.cpp:195
#29 0x4015a3ad in nsServiceManagerImpl::Release (this=0x807bff0)
at nsServiceManager.cpp:204
#30 0x401223eb in NS_ShutdownXPCOM (servMgr=0x0) at nsXPComInit.cpp:478
#31 0x806f174 in main (argc=1, argv=0xbffff824) at nsGtkMain.cpp:191
Kipp -- I'm forwarding this to you since you had posted about the problem. I
expect you know who should *really* own this.
Updated•25 years ago
|
Assignee: warren → danm
Target Milestone: M11
Comment 2•25 years ago
|
||
Looks like danm's checkin to widget/src/gtk/nsAppShell.cpp 1.52
danm%netscape.com
Oct 18 08:08
moving Push/PopThreadEventQueue to
nsIEventQueueService. r:hyatt@netscape.com
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Yes, I introduced this pretty deadlock. It was fixed yesterday by moving the nsIObserver off nsAppShell.
Strange that a deadlock eats so much CPU time, though.
I just updated and rebuilt this code, and it is fixed. I am marking
this bug as verified.
Updated•16 years ago
|
Product: Core → Core Graveyard
Comment hidden (collapsed) |
You need to log in
before you can comment on or make changes to this bug.
Description
•