Closed Bug 155245 Opened 23 years ago Closed 13 years ago

proxytest [debug] ASSERTION: CheckForDeactivation called from wrong thread!: 'Error', file f:\build\mozilla\xpcom\threads\nsEventQueue.h, line 85

Categories

(Core :: XPCOM, defect)

x86
Windows 2000
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME
Future

People

(Reporter: timeless, Unassigned)

Details

###!!! ASSERTION: CheckForDeactivation called from wrong thread!: 'Error', file f:\build\mozilla\xpcom\threads\nsEventQueue.h, line 85 Break: at file f:\build\mozilla\xpcom\threads\nsEventQueue.h, line 85 nsEventQueueImpl::CheckForDeactivation() line 85 nsEventQueueImpl::StopAcceptingEvents(nsEventQueueImpl * const 0x00474ea0) line 208 hash_enum_remove_queues(nsHashKey * 0x00474c70, void * 0x00474ea0, void * 0x00000000) line 93 _hashEnumerate(PLHashEntry * 0x00474c30, int 0, void * 0x0012fde0) line 199 + 26 bytes PL_HashTableEnumerateEntries(PLHashTable * 0x00438174, int (PLHashEntry *, int, void *)* 0x10028c90 _hashEnumerate(PLHashEntry *, int, void *), void * 0x0012fde0) line 429 + 15 bytes nsHashtable::Enumerate(int (nsHashKey *, void *, void *)* 0x10083760 hash_enum_remove_queues(nsHashKey *, void *, void *), void * 0x00000000) line 362 + 21 bytes nsSupportsHashtable::Enumerate(int (nsHashKey *, void *, void *)* 0x10083760 hash_enum_remove_queues(nsHashKey *, void *, void *), void * 0x00000000) line 190 nsEventQueueServiceImpl::~nsEventQueueServiceImpl() line 104 nsEventQueueServiceImpl::`scalar deleting destructor'(unsigned int 1) + 15 bytes nsEventQueueServiceImpl::Release(nsEventQueueServiceImpl * const 0x00438160) line 124 + 133 bytes nsCOMPtr_base::assign_assuming_AddRef(nsISupports * 0x00000000) line 436 nsCOMPtr_base::assign_with_AddRef(nsISupports * 0x00000000) line 74 nsCOMPtr<nsISupports>::operator=(nsISupports * 0x00000000) line 796 FreeServiceContractIDEntryEnumerate(PLDHashTable * 0x0041643c, PLDHashEntryHdr * 0x00bb2f7c, unsigned int 636, void * 0x00000000) line 1923 PL_DHashTableEnumerate(PLDHashTable * 0x0041643c, int (PLDHashTable *, PLDHashEntryHdr *, unsigned int, void *)* 0x10072270 FreeServiceContractIDEntryEnumerate(PLDHashTable *, PLDHashEntryHdr *, unsigned int, void *), void * 0x00000000) line 601 + 34 bytes nsComponentManagerImpl::FreeServices() line 1935 + 19 bytes NS_ShutdownXPCOM(nsIServiceManager * 0x00000000) line 610 main(int 1, char * * 0x00414130) line 572 + 8 bytes mainCRTStartup() line 338 + 17 bytes KERNEL32! 77e8d326() I think in an opt-profile build i crash very near here. PL_IsQueueOnCurrentThread(PLEventQueue * 0x00474e50) line 997 me 0x004121f0 queue->handlerThread 0x00475900 nsEventQueueImpl::CheckForDeactivation - mEventQueue 0x00474e50 \+ name 0x1011d610 "Thread event queue..." So... 1. the proxytest code needs to try to shutdown the eventqueue on its thread instead of waiting for the poor nsEventQueueServiceImpl::~nsEventQueueServiceImpl to try to clean it up 2. Should nsThread or something try to clear out EventQueues on destruction? 3. Should nsEventQueueServiceImpl be able to kill thread queues at shutdown without triggering this assert? This bug will focus on 1. although i'm not quite sure where all of the patches for proxytest will go, bug 155202 is another proxytest bug which i intend to fix at the same time.
this was just my feeble attempt to test the proxy code from within my debugger. it was never meant (by me anywayz) as a real testcase. timeless, if you have the time to clean it up, that would be awesome.
Target Milestone: --- → Future
Please see Bug 322131 for another way to see this assert after installing Venkman and shutting down. Timeless, Brendan suggests you may be able to help.
Assignee: dougt → nobody
QA Contact: scc → xpcom
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.