Closed Bug 419192 Opened 17 years ago Closed 12 years ago

If I use a JS component in a non-mainthread out of a C++ component TB and FF crashes with access violation

Categories

(Core :: XPConnect, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: christianha1111, Assigned: timeless)

References

()

Details

(Keywords: sec-other, testcase, Whiteboard: [sg:nse][ccbr])

Attachments

(4 files, 7 obsolete files)

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; http://bsalsa.com) ; .NET CLR 3.0.04506.30; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648) Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b4pre) Gecko/2008022204 Minefield/3.0b4pr AND Thunderbird version 3.0a1pre (2008022206) I wrote a component in C++. This component starts a new thread with NS_NewThread(getter_AddRefs(workerThread),NULL); Afterwards I dispatch a runnable (also implemented in c++) to the new workerThread. what happens then is, if I try to create and use an object of an component (written in JS) within the run-function TB and FF freeze or crash with access violation. It doesn't always happen. I wrote a tiny extension that should demonstrate what I mean. You can download the source and the .xpi files for TB and FF under http://rapidshare.com/files/94272019/complete.zip.html If that can make any difference, the .xpi packages are build against TB CVS(23.02.08 08:00 GTM+1) and FF CVS(23.02.08 9:00 GTM+1) Reproducible: Always Steps to Reproduce: 1. Download packages from http://rapidshare.com/files/94272019/complete.zip.html 2. install extension 3. start TB or FF with the console and wait about 10 seconds 4. if it doesn't work the first time restart FF or TB Actual Results: TB and FF crashes with access violation Expected Results: There should be 99 new threads, but no access violation. TB Talkback IDs Crash ID: bp-9d0ff911-e1f8-11dc-a63f-001a4bd43ed6 Crash ID: bp-1e23dff5-e231-11dc-b07d-001a4bd43ef6 Crash ID: bp-25c18435-e231-11dc-9469-001a4bd43ef6 Crash ID: bp-300fe7d1-e231-11dc-aeb5-001a4bd46e84 Crash ID: bp-37ca6c70-e231-11dc-8d3e-001a4bd46e84 FF Talkback IDs Crash ID: bp-5bbc93a8-e22c-11dc-beb8-001a4bd43e5c Crash ID: bp-a181dbb3-e22c-11dc-8417-001a4bd43ef6 Crash ID: bp-524870d9-e22c-11dc-aa0a-001a4bd43e5c Crash ID: bp-16791b35-e22c-11dc-be41-001a4bd43ef6
Attached file Example for TB (obsolete) —
Attached file example for FF
Summary: If I use a JS component in a non-mainthread out of a C++ component TB and FF crashes with access violatoin → If I use a JS component in a non-mainthread out of a C++ component TB and FF crashes with access violation
technically your js should include nsIClassInfo.flags & nsIClassInfo.THREADSAFE your stack traces are unfortunately useless as they lead into your code. please see http://developer.mozilla.org/en/docs/How_to_get_a_stacktrace_with_WinDbg which will enable you to get symbols for your firefox build and provide a stack trace. nsCOMPtr<nsIJackFWorker> jackFWorker = do_CreateInstance("@mozilla.org/nsJackFWorker;1", &rv); you need to error check CreateInstance jackFWorker->SetNumber(i); nsCOMPtr<nsIThread> workerThread; NS_NewThread(getter_AddRefs(workerThread),NULL); you need to error check NS_NewThread offhand, i'm not exactly sure what's keeping workerThread alive. the reference you have will go away when this function returns. nsCOMPtr<nsIJackFGraphicExtension> plugy = do_CreateInstance("@mozilla.org/jackfjackftemplate;1", &rv); you need to error check CI rv = plugy->AnalyseGraphic(score);
Attached file New source with suggested improvements (obsolete) —
Attachment #305218 - Attachment is obsolete: true
Attachment #305216 - Attachment is obsolete: true
I tried to get the useful stack traces. I build TB and the example with debug enabled and started it with WinDbg Afterward I got: Assertion failure: cx->thread->id == js_CurrentThreadId(), at d:/mozilla/ mozilla_source/mozilla/js/src/jsapi.c:840 ###!!! ASSERTION: nsCacheSession not thread-safe: '_mOwningThread.GetThread() == PR_GetCurrentThread()', file d:/mozilla/mozilla_source/mozilla/netwerk/cache/sr c/nsCacheSession.cpp, line 48 <@Mossop> told me some days ago that maybe I get this assertion because the factory of the JS component gets registerd from the main thread. And if I call the factory from a worker thread their cx (whatever it is) is not the same. If he is right then does it mean you can't use a JS component from a non-mainthread? the stack trace is: 0:010> kp ChildEBP RetAddr 03bdf31c 002bed7a ntdll!DbgBreakPoint 03bdf48c 002bf03f xpcom_core!Break(char * aMsg = 0x03bdf4b0 "###!!! ASSERTION: nsCacheSession not thread-safe: '_mOwningThread.GetThread() == PR_GetCurrentThread()', file d:/mozilla/mozilla_source/mozilla/netwerk/cache/src/nsCacheSession.cpp, line 48")+0x145 [d:\mozilla\mozilla_source\mozilla\xpcom\base\nsdebugimpl.cpp @ 480] 03bdf8a0 01014812 xpcom_core!NS_DebugBreak_P(unsigned int aSeverity = 1, char * aStr = 0x01085d38 "nsCacheSession not thread-safe", char * aExpr = 0x01066198 "_mOwningThread.GetThread() == PR_GetCurrentThread()", char * aFile = 0x01085d58 "d:/mozilla/mozilla_source/mozilla/netwerk/cache/src/nsCacheSession.cpp", int aLine = 48)+0x1d0 [d:\mozilla\mozilla_source\mozilla\xpcom\base\nsdebugimpl.cpp @ 360] 03bdf8c4 02751c2c necko!nsCacheSession::Release(void)+0x4c [d:\mozilla\mozilla_source\mozilla\netwerk\cache\src\nscachesession.cpp @ 48] 03bdf8d0 0277a198 imglib2!nsCOMPtr<nsICacheSession>::~nsCOMPtr<nsICacheSession>(void)+0x1f [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 583] 03bdf8f0 0277a34e imglib2!_CRT_INIT(void * hDllHandle = 0x02750000, unsigned long dwReason = 0, void * lpreserved = 0x00000001)+0x1f8 [f:\sp\vctools\crt_bld\self_x86\crt\src\crtdll.c @ 420] 03bdf934 0277a20f imglib2!__DllMainCRTStartup(void * hDllHandle = 0x02750000, unsigned long dwReason = 0, void * lpreserved = 0x00000001)+0x12e [f:\sp\vctools\crt_bld\self_x86\crt\src\crtdll.c @ 512] 03bdf948 7c9111a7 imglib2!_DllMainCRTStartup(void * hDllHandle = 0x02750000, unsigned long dwReason = 0, void * lpreserved = 0x00000001)+0x1f [f:\sp\vctools\crt_bld\self_x86\crt\src\crtdll.c @ 462] 03bdf968 7c933f31 ntdll!LdrpCallInitRoutine+0x14 03bdf9ec 7c81cd76 ntdll!LdrShutdownProcess+0x14f 03bdfae0 7c81cdee kernel32!_ExitProcess+0x42 03bdfaf4 10202399 kernel32!ExitProcess+0x14 03bdfb00 10202239 MSVCR80D!__crtExitProcess+0x19 03bdfb3c 10201f00 MSVCR80D!__freeCrtMemory+0x289 03bdfb50 004a3975 MSVCR80D!exit+0x10 03bdfb58 0041615d js3250!JS_Assert(char * s = 0x042d04c0 "???", char * file = 0x03bdfcb8 "", int ln = 62783384)+0x35 [d:\mozilla\mozilla_source\mozilla\js\src\jsutil.c @ 59] 03bdfb6c 00f408fd js3250!JS_BeginRequest(struct JSContext * cx = 0x042d04c0)+0xbd [d:\mozilla\mozilla_source\mozilla\js\src\jsapi.c @ 862] 03bdfb78 00f444ca xpc3250!JSCLContextHelper::JSCLContextHelper(struct JSContext * cx = 0x042d04c0)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1587] 03bdfcc0 00f45532 xpc3250!mozJSComponentLoader::GlobalForLocation(class nsILocalFile * aComponent = 0x042d04b8, struct JSObject ** aGlobal = 0x042d0624, char ** aLocation = 0x042d0628)+0x4e [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1041] 03bdfdec 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x042d04b8, class nsIModule ** aResult = 0x03bdfe2c)+0x1b0 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 608]
funny stack, please be careful. what matters from your stack is at the end. you tripped a JS_Assert and were killed, in the process of exiting, you hit a useless assertion. 03bdfb50 004a3975 MSVCR80D!exit+0x10 03bdfb58 0041615d js3250!JS_Assert(char * s = 0x042d04c0 "???", char * file = 0x03bdfcb8 "", int ln = 62783384)+0x35 [d:\mozilla\mozilla_source\mozilla\js\src\jsutil.c @ 59] 03bdfb6c 00f408fd js3250!JS_BeginRequest(struct JSContext * cx = 0x042d04c0)+0xbd [d:\mozilla\mozilla_source\mozilla\js\src\jsapi.c @ 862] 03bdfb78 00f444ca xpc3250!JSCLContextHelper::JSCLContextHelper(struct JSContext * cx = 0x042d04c0)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1587] 03bdfcc0 00f45532 xpc3250!mozJSComponentLoader::GlobalForLocation(class nsILocalFile * aComponent = 0x042d04b8, struct JSObject ** aGlobal = 0x042d0624, char ** aLocation = 0x042d0628)+0x4e [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1041] 03bdfdec 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x042d04b8, class nsIModule ** aResult = 0x03bdfe2c)+0x1b0 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 608] offhand, i suspect the xpconnect loader code is broken. please run under windbg (or a relative), and attach output w/ ~* knP dt cx JSContext thread .call js_GetCurrentThread(cx->runtime);g I think that works. if it doesn't, .hh ~ .hh dt .hh .call etc, thanks :)
Ok, I tried all you said. I used WinDbg. If I start TB with argument output w/ it crashes before it starts my example. I think the right commands are ~* kp Then search for the right thread and the right function where cx is used. Double click on it and then: dt cx .call /C .call js_GetCurrentThread(cx->runtime);g The others didn’t work The result was: 0:010> ~* kp 0 Id: 129c.12d0 Suspend: 1 Teb: 7ffde000 Unfrozen ChildEBP RetAddr 0012f1e4 7c91e9c0 ntdll!KiFastSystemCallRet 0012f1e8 7c92901b ntdll!ZwWaitForSingleObject+0xc 0012f270 7c91104b ntdll!RtlpWaitForCriticalSection+0x132 0012f278 10203d9b ntdll!RtlEnterCriticalSection+0x46 0012f284 10229555 MSVCR80D!_lock+0x3b 0012f290 10239aba MSVCR80D!_lock_file2+0x15 0012f2d8 02fa1dac MSVCR80D!printf+0xaa 0012f334 02fa1423 jackf!nsJackFDisplayManager::nsJackFDisplayManager(void)+0xf1 [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\nsjackfdisplaymanager.cpp @ 23] 0012f340 02fa2481 jackf!nsJackFDisplayManagerConstructor(class nsISupports * aOuter = 0x002b0dc0, struct nsID * aIID = 0x00b390d0, void ** aResult = 0x042104dc)+0x2a [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\jackfmodule.cpp @ 8] 0012f350 002b426e jackf!nsGenericFactory::CreateInstance(class nsISupports * aOuter = 0x00b390d0, struct nsID * aIID = 0x042104dc, void ** aResult = 0x00000000)+0x1c [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nsgenericfactory.cpp @ 80] 0012f374 002b0dc0 xpcom_core!nsComponentManagerImpl::CreateInstance(struct nsID * aClass = 0x042104dc, class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x00b83230, void ** aResult = 0x04210d48)+0x6d [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1671] 0012f3e0 00ef6e8a xpcom_core!nsComponentManagerImpl::GetService(struct nsID * aClass = 0x042104dc, struct nsID * aIID = 0x00b83230, void ** result = 0x0012f444)+0x100 [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1882] 0012f43c 002c585b xpc3250!nsJSCID::GetService(class nsISupports ** _retval = 0x0012f474)+0x17d [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\src\xpcjsid.cpp @ 894] 0012f450 00f08e54 xpcom_core!NS_InvokeByIndex_P(class nsISupports * that = 0x042104c0, unsigned int methodIndex = 0xb, unsigned int paramCount = 1, struct nsXPTCVariant * params = 0x0012f474)+0x27 [d:\mozilla\mozilla_source\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp @ 102] 0012f4c0 00b89990 xpc3250!XPCWrappedNative::CallMethod(class XPCCallContext * ccx = 0x023f9708, XPCWrappedNative::CallMode mode = CALL_GETTER (1))+0x9ef [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp @ 2341] WARNING: Frame IP not in any known module. Following frames may be wrong. 0012f4d8 00f0d052 0xb89990 0012f594 003545fc xpc3250!XPC_WN_MaybeResolvingPropertyStub(struct JSContext * cx = <Memory access error>, struct JSObject * obj = <Memory access error>, long idval = <Memory access error>, long * vp = <Memory access error>)+0xec [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp @ 919] 0012f5a8 00f06bde nspr4!_MD_CURRENT_THREAD(void)+0xc [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 300] 0012f5e0 00f0b0e2 xpc3250!XPCWrappedNative::GetWrappedNativeOfJSObject(struct JSContext * cx = 0x004d4c20, struct JSObject * obj = 0x0041d5d7, struct JSObject * funobj = 0x023f9708, struct JSObject ** pobj2 = 0x02f12a40, class XPCWrappedNativeTearOff ** pTearOff = 0x00000005)+0x234 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp @ 1330] 023f9708 02364a10 xpc3250!XPCNativeMember::GetCallInfo(class XPCCallContext * ccx = 0x012dae41, struct JSObject * funobj = 0x10b40000, class XPCNativeInterface ** pInterface = 0x00000409, class XPCNativeMember ** pMember = 0x02d58d54)+0x46 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\src\xpcwrappednativeinfo.cpp @ 101] 1 Id: 129c.1328 Suspend: 1 Teb: 7ffdd000 Unfrozen ChildEBP RetAddr 00ecfde0 7c91e9c0 ntdll!KiFastSystemCallRet 00ecfde4 7c8025cb ntdll!ZwWaitForSingleObject+0xc 00ecfe48 7c802532 kernel32!WaitForSingleObjectEx+0xa8 00ecfe5c 003563c8 kernel32!WaitForSingleObject+0x12 00ecfe78 0034fbac nspr4!_PR_MD_WAIT_CV(struct _MDCVar * cv = 0xffffffff, struct _MDLock * lock = 0x00000000, unsigned int timeout = 0)+0x58 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95cv.c @ 282] 00ecfe90 003500f4 nspr4!_PR_WaitCondVar(struct PRThread * thread = 0x69004400, struct PRCondVar * cvar = 0x61006e00, struct PRLock * lock = 0x00007200, unsigned int timeout = 0x4a062f00)+0x9c [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 205] 00ecfeac 002bc1db nspr4!PR_WaitCondVar(struct PRCondVar * cvar = 0x69004400, unsigned int timeout = 0x61006e00)+0x64 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 551] 00ecfedc 002bb748 xpcom_core!TimerThread::Run(void)+0x16d [d:\mozilla\mozilla_source\mozilla\xpcom\threads\timerthread.cpp @ 318] 00ecff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x00ecff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 00ecff14 002bb4ae xpcom_core!NS_ProcessNextEvent_P(class nsIThread * thread = 0x00000001, int mayWait = 1)+0x3d [d:\mozilla\mozilla_second_build\xpcom\build\nsthreadutils.cpp @ 227] 00ecff48 0035123b xpcom_core!nsThread::ThreadFunc(void * arg = 0x00ecff44)+0x9f [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 254] 00ecff64 0035433d nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 00ecff6c 102048d1 nspr4!pr_root(void * arg = 0x10204877)+0xd [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122] 00ecffa8 10204877 MSVCR80D!_beginthreadex+0x221 00ecffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 00ecffec 00000000 kernel32!BaseThreadStart+0x37 2 Id: 129c.132c Suspend: 1 Teb: 7ffdc000 Unfrozen ChildEBP RetAddr 011bff78 7c91e31b ntdll!KiFastSystemCallRet 011bff7c 719bd609 ntdll!ZwRemoveIoCompletion+0xc 011bffb4 7c80b683 mswsock!SockAsyncThread+0x5a 011bffec 00000000 kernel32!BaseThreadStart+0x37 3 Id: 129c.1330 Suspend: 1 Teb: 7ffdb000 Unfrozen ChildEBP RetAddr 0177cc0c 7c91e9c0 ntdll!KiFastSystemCallRet 0177cc10 719b4033 ntdll!ZwWaitForSingleObject+0xc 0177cc4c 719b5fa7 mswsock!SockWaitForSingleObject+0x1a0 0177cd40 71a12e67 mswsock!WSPSelect+0x25f 0177cd90 0035882c WS2_32!select+0xb8 0177fdf0 00fc17f7 nspr4!_PR_MD_PR_POLL(struct PRPollDesc * pds = <Memory access error>, int npds = <Memory access error>, unsigned int timeout = <Memory access error>)+0x39c [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w32poll.c @ 273] 0177fe10 00fc285e necko!nsSocketTransportService::Poll(int wait = 65537, unsigned int * interval = 0xcdcdcdcd)+0x7e [d:\mozilla\mozilla_source\mozilla\netwerk\base\src\nssockettransportservice2.cpp @ 346] 0177fe4c 00fc2a31 necko!nsSocketTransportService::DoPollIteration(int wait = 1)+0x14c [d:\mozilla\mozilla_source\mozilla\netwerk\base\src\nssockettransportservice2.cpp @ 642] 0177fe60 002bb6cc necko!nsSocketTransportService::OnProcessNextEvent(class nsIThreadInternal * thread = 0x00b605f0, int mayWait = 1, unsigned int depth = 0)+0x40 [d:\mozilla\mozilla_source\mozilla\netwerk\base\src\nssockettransportservice2.cpp @ 520] 0177fe90 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x0177feac)+0xc0 [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 501] 0177fea4 00fc263e xpcom_core!NS_ProcessNextEvent_P(class nsIThread * thread = 0x00b605f0, int mayWait = 1)+0x3d [d:\mozilla\mozilla_second_build\xpcom\build\nsthreadutils.cpp @ 227] 0177fedc 002bb748 necko!nsSocketTransportService::Run(void)+0xa1 [d:\mozilla\mozilla_source\mozilla\netwerk\base\src\nssockettransportservice2.cpp @ 562] 0177ff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x0177ff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 0177ff14 002bb4ae xpcom_core!NS_ProcessNextEvent_P(class nsIThread * thread = 0x00000001, int mayWait = 1)+0x3d [d:\mozilla\mozilla_second_build\xpcom\build\nsthreadutils.cpp @ 227] 0177ff48 0035123b xpcom_core!nsThread::ThreadFunc(void * arg = 0x0177ff44)+0x9f [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 254] 0177ff64 0035433d nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 0177ff6c 102048d1 nspr4!pr_root(void * arg = 0x10204877)+0xd [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122] 0177ffa8 10204877 MSVCR80D!_beginthreadex+0x221 0177ffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 0177ffec 00000000 kernel32!BaseThreadStart+0x37 4 Id: 129c.1348 Suspend: 1 Teb: 7ffda000 Unfrozen ChildEBP RetAddr 0187fddc 7c91e9ab ntdll!KiFastSystemCallRet 0187fde0 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc 0187fe7c 7c80a075 kernel32!WaitForMultipleObjectsEx+0x12c 0187fe98 0101c44e kernel32!WaitForMultipleObjects+0x18 0187fedc 002bb748 necko!nsNotifyAddrListener::Run(void)+0x80 [d:\mozilla\mozilla_source\mozilla\netwerk\system\win32\nsnotifyaddrlistener.cpp @ 161] 0187ff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x0187ff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 0187ff14 002bb4ae xpcom_core!NS_ProcessNextEvent_P(class nsIThread * thread = 0x00000001, int mayWait = 1)+0x3d [d:\mozilla\mozilla_second_build\xpcom\build\nsthreadutils.cpp @ 227] 0187ff48 0035123b xpcom_core!nsThread::ThreadFunc(void * arg = 0x0187ff44)+0x9f [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 254] 0187ff64 0035433d nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 0187ff6c 102048d1 nspr4!pr_root(void * arg = 0x10204877)+0xd [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122] 0187ffa8 10204877 MSVCR80D!_beginthreadex+0x221 0187ffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 0187ffec 00000000 kernel32!BaseThreadStart+0x37 5 Id: 129c.1448 Suspend: 1 Teb: 7ffd9000 Unfrozen ChildEBP RetAddr 020efe18 7c91e399 ntdll!KiFastSystemCallRet 020efe1c 77e56713 ntdll!NtReplyWaitReceivePortEx+0xc 020eff80 77e56c2b RPCRT4!LRPC_ADDRESS::ReceiveLotsaCalls+0xf4 020eff88 77e56a4d RPCRT4!RecvLotsaCallsWrapper+0xd 020effa8 77e56c13 RPCRT4!BaseCachedThreadRoutine+0x79 020effb4 7c80b683 RPCRT4!ThreadStartRoutine+0x1a 020effec 00000000 kernel32!BaseThreadStart+0x37 6 Id: 129c.144c Suspend: 1 Teb: 7ffd8000 Unfrozen ChildEBP RetAddr 021eff1c 7c91d85c ntdll!KiFastSystemCallRet 021eff20 7c8023ed ntdll!NtDelayExecution+0xc 021eff78 7c802451 kernel32!SleepEx+0x61 021eff88 774ce31d kernel32!Sleep+0xf 021eff94 774ce3dc ole32!CROIDTable::WorkerThreadLoop+0x14 021effa8 774ce444 ole32!CRpcThread::WorkerLoop+0x1e 021effb4 7c80b683 ole32!CRpcThreadCache::RpcWorkerThreadEntry+0x1b 021effec 00000000 kernel32!BaseThreadStart+0x37 7 Id: 129c.149c Suspend: 1 Teb: 7ffd7000 Unfrozen ChildEBP RetAddr 03aafdc0 7c91e9c0 ntdll!KiFastSystemCallRet 03aafdc4 7c8025cb ntdll!ZwWaitForSingleObject+0xc 03aafe28 7c802532 kernel32!WaitForSingleObjectEx+0xa8 03aafe3c 003563c8 kernel32!WaitForSingleObject+0x12 03aafe58 0034fbac nspr4!_PR_MD_WAIT_CV(struct _MDCVar * cv = 0xffffffff, struct _MDLock * lock = 0x00000000, unsigned int timeout = 0)+0x58 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95cv.c @ 282] 03aafe70 0034f763 nspr4!_PR_WaitCondVar(struct PRThread * thread = 0x002bb748, struct PRCondVar * cvar = 0x00000000, struct PRLock * lock = 0x00000000, unsigned int timeout = 0x421cbf0)+0x9c [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 205] 03aafe8c 0027d8c3 nspr4!PR_Wait(struct PRMonitor * mon = 0x002bb748, unsigned int ticks = 0)+0x33 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\prmon.c @ 175] 03aafe98 002b8f52 xpcom_core!nsAutoMonitor::Wait(unsigned int interval = 0x2bb748)+0xd [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nsautolock.h @ 340] 03aafedc 002bb748 xpcom_core!nsThreadPool::Run(void)+0x14c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthreadpool.cpp @ 201] 03aaff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x03aaff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 03aaff14 002bb4ae xpcom_core!NS_ProcessNextEvent_P(class nsIThread * thread = 0x00000001, int mayWait = 1)+0x3d [d:\mozilla\mozilla_second_build\xpcom\build\nsthreadutils.cpp @ 227] 03aaff48 0035123b xpcom_core!nsThread::ThreadFunc(void * arg = 0x03aaff44)+0x9f [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 254] 03aaff5c 7c92b686 nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 03aaffa8 10204877 ntdll!RtlAllocateHeapSlowly+0x113b 03aaffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 03aaffec 00000000 kernel32!BaseThreadStart+0x37 8 Id: 129c.1454 Suspend: 1 Teb: 7ffd6000 Unfrozen ChildEBP RetAddr 036bfe2c 7c91e9c0 ntdll!KiFastSystemCallRet 036bfe30 7c8025cb ntdll!ZwWaitForSingleObject+0xc 036bfe94 7c802532 kernel32!WaitForSingleObjectEx+0xa8 036bfea8 003563c8 kernel32!WaitForSingleObject+0x12 036bfec4 0034fbac nspr4!_PR_MD_WAIT_CV(struct _MDCVar * cv = 0xffffffff, struct _MDLock * lock = 0x00000000, unsigned int timeout = 0)+0x58 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95cv.c @ 282] 036bfedc 003500f4 nspr4!_PR_WaitCondVar(struct PRThread * thread = 0x0035123b, struct PRCondVar * cvar = 0x0248c8c0, struct PRLock * lock = 0x00a44fc0, unsigned int timeout = 0xa44fc0)+0x9c [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 205] 036bfef8 031dde50 nspr4!PR_WaitCondVar(struct PRCondVar * cvar = 0x0035123b, unsigned int timeout = 0x248c8c0)+0x64 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 551] 036bff48 0035123b pipnss!nsSSLThread::Run(void)+0xad [d:\mozilla\mozilla_source\mozilla\security\manager\ssl\src\nssslthread.cpp @ 967] 036bff64 0035433d nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 036bff6c 102048d1 nspr4!pr_root(void * arg = 0x10204877)+0xd [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122] 036bffa8 10204877 MSVCR80D!_beginthreadex+0x221 036bffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 036bffec 00000000 kernel32!BaseThreadStart+0x37 9 Id: 129c.1458 Suspend: 1 Teb: 7ffd5000 Unfrozen ChildEBP RetAddr 037bfe4c 7c91e9c0 ntdll!KiFastSystemCallRet 037bfe50 7c8025cb ntdll!ZwWaitForSingleObject+0xc 037bfeb4 7c802532 kernel32!WaitForSingleObjectEx+0xa8 037bfec8 003563c8 kernel32!WaitForSingleObject+0x12 037bfee4 0034fbac nspr4!_PR_MD_WAIT_CV(struct _MDCVar * cv = 0xffffffff, struct _MDLock * lock = 0x00000000, unsigned int timeout = 0)+0x58 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95cv.c @ 282] 037bfefc 003500f4 nspr4!_PR_WaitCondVar(struct PRThread * thread = 0x0035123b, struct PRCondVar * cvar = 0x0248cf98, struct PRLock * lock = 0x00a44fc0, unsigned int timeout = 0xa44fc0)+0x9c [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 205] 037bff18 031df23e nspr4!PR_WaitCondVar(struct PRCondVar * cvar = 0x0035123b, unsigned int timeout = 0x248cf98)+0x64 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 551] 037bff48 0035123b pipnss!nsCertVerificationThread::Run(void)+0x3e [d:\mozilla\mozilla_source\mozilla\security\manager\ssl\src\nscertverificationthread.cpp @ 138] 037bff64 0035433d nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 037bff6c 102048d1 nspr4!pr_root(void * arg = 0x10204877)+0xd [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122] 037bffa8 10204877 MSVCR80D!_beginthreadex+0x221 037bffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 037bffec 00000000 kernel32!BaseThreadStart+0x37 # 10 Id: 129c.14a4 Suspend: 1 Teb: 7ffd4000 Unfrozen ChildEBP RetAddr 03bafb54 004a396d ntdll!DbgBreakPoint 03bafb58 0041615d js3250!JS_Assert(char * s = 0x04281fd0 "???", char * file = 0x03bafcb8 "", int ln = 62586776)+0x2d [d:\mozilla\mozilla_source\mozilla\js\src\jsutil.c @ 59] 03bafb6c 00f208fd js3250!JS_BeginRequest(struct JSContext * cx = 0x04281fd0)+0xbd [d:\mozilla\mozilla_source\mozilla\js\src\jsapi.c @ 862] 03bafb78 00f244ca xpc3250!JSCLContextHelper::JSCLContextHelper(struct JSContext * cx = 0x04281fd0)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1587] 03bafcc0 00f25532 xpc3250!mozJSComponentLoader::GlobalForLocation(class nsILocalFile * aComponent = 0x04281fc8, struct JSObject ** aGlobal = 0x0428313c, char ** aLocation = 0x04283140)+0x4e [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1041] 03bafdec 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x04281fc8, class nsIModule ** aResult = 0x03bafe2c)+0x1b0 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 608] 03bafe30 002b4360 xpcom_core!nsFactoryEntry::GetFactory(class nsIFactory ** aFactory = 0x03bafe5c)+0x13a [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 3544] 03bafe44 02fa350a xpcom_core!nsComponentManagerImpl::CreateInstanceByContractID(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x00000000)+0x5d [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1753] 03bafe6c 02fa360f jackf!CallCreateInstance(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x03bafea0)+0x4e [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 120] 03bafe88 02fa213f jackf!nsCreateInstanceByContractID::operator()(struct nsID * aIID = 0x7c91eb94, void ** aInstancePtr = 0x02fa2292)+0x15 [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 210] 03bafe98 02fa2292 jackf!nsCOMPtr<nsIJackFGraphicExtension>::assign_from_helper(class nsCOMPtr_helper * helper = 0x00000000, struct nsID * aIID = 0x02fa7998)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 1335] 03bafea8 02fa22e8 jackf!nsCOMPtr<nsIJackFGraphicExtension>::nsCOMPtr<nsIJackFGraphicExtension>(class nsCOMPtr_helper * helper = 0x002bb748)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 695] 03bafedc 002bb748 jackf!nsJackFWorker::Run(void)+0x41 [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\nsjackfworker.cpp @ 26] 03baff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x03baff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 03baff14 002bb4ae xpcom_core!NS_ProcessNextEvent_P(class nsIThread * thread = 0x00000001, int mayWait = 1)+0x3d [d:\mozilla\mozilla_second_build\xpcom\build\nsthreadutils.cpp @ 227] 03baff48 0035123b xpcom_core!nsThread::ThreadFunc(void * arg = 0x03baff44)+0x9f [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 254] 03baff64 0035433d nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 03baff6c 102048d1 nspr4!pr_root(void * arg = 0x10204877)+0xd [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122] 03baffa8 10204877 MSVCR80D!_beginthreadex+0x221 03baffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 11 Id: 129c.14bc Suspend: 1 Teb: 7ffaf000 Unfrozen ChildEBP RetAddr 03cafa34 7c91e9c0 ntdll!KiFastSystemCallRet 03cafa38 7c92901b ntdll!ZwWaitForSingleObject+0xc 03cafac0 7c91104b ntdll!RtlpWaitForCriticalSection+0x132 03cafac8 10203d9b ntdll!RtlEnterCriticalSection+0x46 03cafad4 10229519 MSVCR80D!_lock+0x3b 03cafae0 1022ba34 MSVCR80D!_lock_file+0x29 03cafb40 004a3964 MSVCR80D!fprintf+0x114 03cafb58 0041615d js3250!JS_Assert(char * s = 0x042845e0 "???", char * file = 0x03cafcb8 "", int ln = 63635352)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\jsutil.c @ 56] 03cafb6c 00f208fd js3250!JS_BeginRequest(struct JSContext * cx = 0x042845e0)+0xbd [d:\mozilla\mozilla_source\mozilla\js\src\jsapi.c @ 862] 03cafb78 00f244ca xpc3250!JSCLContextHelper::JSCLContextHelper(struct JSContext * cx = 0x042845e0)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1587] 03cafcc0 00f25532 xpc3250!mozJSComponentLoader::GlobalForLocation(class nsILocalFile * aComponent = 0x042845d8, struct JSObject ** aGlobal = 0x042847d4, char ** aLocation = 0x042847d8)+0x4e [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1041] 03cafdec 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x042845d8, class nsIModule ** aResult = 0x03cafe2c)+0x1b0 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 608] 03cafe30 002b4360 xpcom_core!nsFactoryEntry::GetFactory(class nsIFactory ** aFactory = 0x03cafe5c)+0x13a [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 3544] 03cafe44 02fa350a xpcom_core!nsComponentManagerImpl::CreateInstanceByContractID(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x00000000)+0x5d [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1753] 03cafe6c 02fa360f jackf!CallCreateInstance(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x03cafea0)+0x4e [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 120] 03cafe88 02fa213f jackf!nsCreateInstanceByContractID::operator()(struct nsID * aIID = 0x00000000, void ** aInstancePtr = 0x02fa2292)+0x15 [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 210] 03cafe98 02fa2292 jackf!nsCOMPtr<nsIJackFGraphicExtension>::assign_from_helper(class nsCOMPtr_helper * helper = 0x00000000, struct nsID * aIID = 0x02fa7998)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 1335] 03cafea8 02fa22e8 jackf!nsCOMPtr<nsIJackFGraphicExtension>::nsCOMPtr<nsIJackFGraphicExtension>(class nsCOMPtr_helper * helper = 0x002bb748)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 695] 03cafedc 002bb748 jackf!nsJackFWorker::Run(void)+0x41 [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\nsjackfworker.cpp @ 26] 03caff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x03caff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 12 Id: 129c.15dc Suspend: 1 Teb: 7ffae000 Unfrozen ChildEBP RetAddr 03dafa34 7c91e9c0 ntdll!KiFastSystemCallRet 03dafa38 7c92901b ntdll!ZwWaitForSingleObject+0xc 03dafac0 7c91104b ntdll!RtlpWaitForCriticalSection+0x132 03dafac8 10203d9b ntdll!RtlEnterCriticalSection+0x46 03dafad4 10229519 MSVCR80D!_lock+0x3b 03dafae0 1022ba34 MSVCR80D!_lock_file+0x29 03dafb40 004a3964 MSVCR80D!fprintf+0x114 03dafb58 0041615d js3250!JS_Assert(char * s = 0x04285c20 "???", char * file = 0x03dafcb8 "", int ln = 64683928)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\jsutil.c @ 56] 03dafb6c 00f208fd js3250!JS_BeginRequest(struct JSContext * cx = 0x04285c20)+0xbd [d:\mozilla\mozilla_source\mozilla\js\src\jsapi.c @ 862] 03dafb78 00f244ca xpc3250!JSCLContextHelper::JSCLContextHelper(struct JSContext * cx = 0x04285c20)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1587] 03dafcc0 00f25532 xpc3250!mozJSComponentLoader::GlobalForLocation(class nsILocalFile * aComponent = 0x04285c18, struct JSObject ** aGlobal = 0x04285dc4, char ** aLocation = 0x04285dc8)+0x4e [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1041] 03dafdec 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x04285c18, class nsIModule ** aResult = 0x03dafe2c)+0x1b0 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 608] 03dafe30 002b4360 xpcom_core!nsFactoryEntry::GetFactory(class nsIFactory ** aFactory = 0x03dafe5c)+0x13a [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 3544] 03dafe44 02fa350a xpcom_core!nsComponentManagerImpl::CreateInstanceByContractID(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x00000000)+0x5d [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1753] 03dafe6c 02fa360f jackf!CallCreateInstance(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x03dafea0)+0x4e [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 120] 03dafe88 02fa213f jackf!nsCreateInstanceByContractID::operator()(struct nsID * aIID = 0x00001000, void ** aInstancePtr = 0x02fa2292)+0x15 [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 210] 03dafe98 02fa2292 jackf!nsCOMPtr<nsIJackFGraphicExtension>::assign_from_helper(class nsCOMPtr_helper * helper = 0x00000000, struct nsID * aIID = 0x02fa7998)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 1335] 03dafea8 02fa22e8 jackf!nsCOMPtr<nsIJackFGraphicExtension>::nsCOMPtr<nsIJackFGraphicExtension>(class nsCOMPtr_helper * helper = 0x002bb748)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 695] 03dafedc 002bb748 jackf!nsJackFWorker::Run(void)+0x41 [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\nsjackfworker.cpp @ 26] 03daff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x03daff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 13 Id: 129c.15fc Suspend: 1 Teb: 7ffad000 Unfrozen ChildEBP RetAddr 03edec34 7c91e3ed ntdll!KiFastSystemCallRet 03edec38 7c9232f8 ntdll!ZwRequestWaitReplyPort+0xc 03edec58 7c81cec6 ntdll!CsrClientCallServer+0x8c 03eded38 7c81cf3d kernel32!WriteConsoleInternal+0xb6 03eded54 7c81cf51 kernel32!WriteConsoleA+0x18 03ededa4 1024f3b9 kernel32!WriteFile+0x64 03edfa60 1024efd8 MSVCR80D!_write_nolock+0x369 03edfaac 10229b30 MSVCR80D!_write+0x1a8 03edfacc 1022d843 MSVCR80D!_flush+0x60 03edfadc 1022bbcf MSVCR80D!_ftbuf+0x53 03edfb40 004a3964 MSVCR80D!fprintf+0x2af 03edfb58 0041615d js3250!JS_Assert(char * s = 0x04287190 "???", char * file = 0x03edfcb8 "", int ln = 65929112)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\jsutil.c @ 56] 03edfb6c 00f208fd js3250!JS_BeginRequest(struct JSContext * cx = 0x04287190)+0xbd [d:\mozilla\mozilla_source\mozilla\js\src\jsapi.c @ 862] 03edfb78 00f244ca xpc3250!JSCLContextHelper::JSCLContextHelper(struct JSContext * cx = 0x04287190)+0x24 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1587] 03edfcc0 00f25532 xpc3250!mozJSComponentLoader::GlobalForLocation(class nsILocalFile * aComponent = 0x04287188, struct JSObject ** aGlobal = 0x04287384, char ** aLocation = 0x04287388)+0x4e [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1041] 03edfdec 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x04287188, class nsIModule ** aResult = 0x03edfe2c)+0x1b0 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 608] 03edfe30 002b4360 xpcom_core!nsFactoryEntry::GetFactory(class nsIFactory ** aFactory = 0x03edfe5c)+0x13a [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 3544] 03edfe44 02fa350a xpcom_core!nsComponentManagerImpl::CreateInstanceByContractID(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x00000000)+0x5d [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1753] 03edfe6c 02fa360f jackf!CallCreateInstance(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x03edfea0)+0x4e [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 120] 03edfe88 02fa213f jackf!nsCreateInstanceByContractID::operator()(struct nsID * aIID = 0x00000000, void ** aInstancePtr = 0x02fa2292)+0x15 [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 210] 14 Id: 129c.1684 Suspend: 1 Teb: 7ffac000 Unfrozen ChildEBP RetAddr 03fdf728 7c91d592 ntdll!KiFastSystemCallRet 03fdf72c 7c80ee27 ntdll!ZwClose+0xc 03fdf778 7c81f459 kernel32!FindClose+0x5c 03fdfa44 0029d22a kernel32!GetShortPathNameW+0x27b 03fdfc70 0029d26a xpcom_core!nsLocalFile::EnsureShortPath(void)+0x37 [d:\mozilla\mozilla_source\mozilla\xpcom\io\nslocalfilewin.cpp @ 2879] 03fdfc78 00f2024b xpcom_core!nsLocalFile::GetHashCode(unsigned int * aResult = 0x04288744)+0xd [d:\mozilla\mozilla_source\mozilla\xpcom\io\nslocalfilewin.cpp @ 2907] 03fdfc8c 00f215d8 xpc3250!nsHashableHashKey::HashKey(class nsIHashable * aKey = 0x04288744)+0x18 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nshashkeys.h @ 417] 03fdfc94 00275117 xpc3250!nsTHashtable<nsBaseHashtableET<nsHashableHashKey,nsAutoPtr<mozJSComponentLoader::ModuleEntry> > >::s_HashKey(struct PLDHashTable * table = 0x00000002, void * key = 0x04286388)+0x9 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nsthashtable.h @ 359] 03fdfcb0 00f213e2 xpcom_core!PL_DHashTableOperate(struct PLDHashTable * table = 0x00000001, void * key = 0x00000000, PLDHashOperator op = PL_DHASH_REMOVE (2))+0x65 [d:\mozilla\mozilla_second_build\xpcom\build\pldhash.c @ 588] 03fdfcbc 00f21df2 xpc3250!nsTHashtable<nsBaseHashtableET<nsHashableHashKey,nsAutoPtr<mozJSComponentLoader::ModuleEntry> > >::GetEntry(class nsIHashable * aKey = 0x00000002)+0x36 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nsthashtable.h @ 164] 03fdfcc4 00f2548a xpc3250!nsClassHashtable<nsHashableHashKey,mozJSComponentLoader::ModuleEntry>::Get(class nsIHashable * aKey = 0x00000002, class mozJSComponentLoader::ModuleEntry ** retVal = 0x002f787c)+0x9 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nsclasshashtable.h @ 103] 03fdfdec 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x04288740, class nsIModule ** aResult = 0x03fdfe2c)+0x108 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 597] 03fdfe30 002b4360 xpcom_core!nsFactoryEntry::GetFactory(class nsIFactory ** aFactory = 0x03fdfe5c)+0x13a [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 3544] 03fdfe44 02fa350a xpcom_core!nsComponentManagerImpl::CreateInstanceByContractID(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x00000000)+0x5d [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1753] 03fdfe6c 02fa360f jackf!CallCreateInstance(char * aContractID = 0x02fa79e8 "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02fa7998, void ** aResult = 0x03fdfea0)+0x4e [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 120] 03fdfe88 02fa213f jackf!nsCreateInstanceByContractID::operator()(struct nsID * aIID = 0x00000000, void ** aInstancePtr = 0x02fa2292)+0x15 [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 210] 03fdfe98 02fa2292 jackf!nsCOMPtr<nsIJackFGraphicExtension>::assign_from_helper(class nsCOMPtr_helper * helper = 0x00000000, struct nsID * aIID = 0x02fa7998)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 1335] 03fdfea8 02fa22e8 jackf!nsCOMPtr<nsIJackFGraphicExtension>::nsCOMPtr<nsIJackFGraphicExtension>(class nsCOMPtr_helper * helper = 0x002bb748)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 695] 03fdfedc 002bb748 jackf!nsJackFWorker::Run(void)+0x41 [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\nsjackfworker.cpp @ 26] 03fdff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x03fdff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 15 Id: 129c.1580 Suspend: 1 Teb: 7ffab000 Unfrozen ChildEBP RetAddr 0410ed0c 7c91e3ed ntdll!KiFastSystemCallRet 0410ed10 7c9232f8 ntdll!ZwRequestWaitReplyPort+0xc 0410ed30 7c874122 ntdll!CsrClientCallServer+0x8c 0410edec 1024f264 kernel32!GetConsoleCP+0x3f 0410fa94 1024efd8 MSVCR80D!_write_nolock+0x214 0410fae0 1022c0bc MSVCR80D!_write+0x1a8 0410fb10 10233b73 MSVCR80D!_flsbuf+0x28c 0410fb24 10232d18 MSVCR80D!_output_l+0x1353 0410fe54 10239af0 MSVCR80D!_output_l+0x4f8 0410fea4 02fa22c2 MSVCR80D!printf+0xe0 0410fedc 002bb748 jackf!nsJackFWorker::Run(void)+0x1b [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\nsjackfworker.cpp @ 24] 0410ff00 0027de37 xpcom_core!nsThread::ProcessNextEvent(int mayWait = 1, int * result = 0x0410ff1c)+0x13c [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 511] 0410ff14 002bb4ae xpcom_core!NS_ProcessNextEvent_P(class nsIThread * thread = 0x00000001, int mayWait = 1)+0x3d [d:\mozilla\mozilla_second_build\xpcom\build\nsthreadutils.cpp @ 227] 0410ff48 0035123b xpcom_core!nsThread::ThreadFunc(void * arg = 0x0410ff44)+0x9f [d:\mozilla\mozilla_source\mozilla\xpcom\threads\nsthread.cpp @ 254] 0410ff64 0035433d nspr4!_PR_NativeRunThread(void * arg = 0x10204877)+0xdb [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436] 0410ff6c 102048d1 nspr4!pr_root(void * arg = 0x10204877)+0xd [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122] 0410ffa8 10204877 MSVCR80D!_beginthreadex+0x221 0410ffb4 7c80b683 MSVCR80D!_beginthreadex+0x1c7 0410ffec 00000000 kernel32!BaseThreadStart+0x37 0:010> dt cx Local var @ 0x3bafc58 Type JSContext* 0x04281fd0 +0x000 links : JSCListStr +0x008 operationCount : -842203135 +0x00c xmlSettingFlags : 0x60 '`' +0x00d padding : 0x20 ' ' +0x00e version : 0x428 +0x010 options : 0xaa +0x014 localeCallbacks : 0x00000009 JSLocaleCallbacks +0x018 resolvingTable : 0x003022dc JSDHashTable +0x01c rval2 : 0 +0x020 rval2set : 0x1 '' +0x021 generatingError : 0 '' +0x022 insideGCMarkCallback : 0 '' +0x023 throwing : 0 '' +0x024 exception : 69742640 +0x028 stackLimit : 0x63 +0x02c scriptStackQuota : 5 +0x030 runtime : 0xcdcdcdcd JSRuntime +0x034 stackPool : JSArenaPool +0x054 fp : 0xabababab JSStackFrame +0x058 tempPool : JSArenaPool +0x078 globalObject : (null) +0x07c weakRoots : JSWeakRoots +0x0c0 regExpStatics : JSRegExpStatics +0x138 sharpObjectMap : JSSharpObjectMap +0x144 argumentFormatMap : 0x0046006b JSArgumentFormatMap +0x148 lastMessage : 0x0065005c "" +0x14c tracefp : 0x00740078 +0x150 errorReporter : 0x006e0065 void +6e0065 +0x154 operationCallbackIsSet : 0y1 +0x154 operationLimit : 0y0000000001101001000000000111001 (0x348039) +0x158 operationCallback : 0x006e006f int +6e006f +0x15c interpLevel : 0x5c0073 +0x160 data : 0x0030007b +0x164 dormantFrameChain : 0x00420039 JSStackFrame +0x168 thread : 0x00440041 JSThread +0x16c requestDepth : 3145776 +0x170 outstandingRequests : 2949175 +0x174 titleToShare : 0x00340033 JSTitle +0x178 lockedSealedTitle : 0x00320031 JSTitle +0x17c threadLinks : JSCListStr +0x184 stackHeaders : 0x002d0034 JSStackHeader +0x188 localRootStack : 0x00410038 JSLocalRootStack +0x18c tempValueRooters : 0x00310041 JSTempValueRooter +0x190 debugHooks : 0x0031002d JSDebugHooks 0:010> .call /C Call cleared 0:010> .call js_GetCurrentThread(cx->runtime);g Thread is set up for call, 'g' will execute. WARNING: This can have serious side-effects, including deadlocks and corruption of the debuggee. .call returns: struct JSThread * 0x04288bb0 +0x000 contextList : JSCListStr +0x008 id : 69734504 +0x00c gcFreeLists : [10] 0xdadadada JSGCThing +0x034 gcMallocBytes : 0 +0x038 gsnCache : JSGSNCache +0x05c propertyCache : JSPropertyCache eax=00000073 ebx=00b6edb0 ecx=8d8cbbb1 edx=7c91eb94 esi=03bafbd4 edi=00c20530 eip=7c911230 esp=03bafb58 ebp=03bafc54 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206 ntdll!DbgBreakPoint: 7c911230 cc int 3 If there is anything more I can do, just tell me a time I’ll try to be in the IRC. Just out of curiosity, can you guys really read this stack traces? Does anybody think that could be a bug or am I doing something just wrong. thanks
i said attach not paste :(. but yes, i can really read it (as it happens, I can read much less friendly stack traces too, but that flavor is quite friendly). WARNING: Frame IP not in any known module. Following frames may be wrong. 0012f4d8 00f0d052 0xb89990 is odd, you're missing a something. (you can try "lm" in windbg to see if you can figure out what that is, but don't paste it!) be on irc and ask someone to help you find timeless. anyway, ignoring that bookkeeping. it looks like threads 10..13 (~10, ~11, ~12, ~13) all tripped the same assertion. I think it basically means that the componentloader is no longer threadsafe. this is unfortunate and should be fairly easily fixed. I believe it's a regression, although I'm not certain, because while I have worked w/ threads, most of my threads didn't actively attack the componentmanager. Offhand, the simplest thing that the componentloader can do is recognize when the cached context it has is from some other thread, if it is, the component loader should just create a new context and use that for the call. JSContexts can safely be used. If you're looking for the quick and dirty approach, make the JSCLContextHelper create its own context each time it does this auto thing instead of using the one someone provides.
Attached patch something like this might work (obsolete) — Splinter Review
just let me know if it works
Assignee: nobody → timeless
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Attachment #305599 - Flags: review?(christianha1111)
didn't work for me. I checkt out the latest source. included the patch with "patch -p0 --input=file. I got the following error. d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozJSComponentLoader.h(149) : error C2039: 'mContext' : is not a member of 'mozJSComponentLoader' d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozJSComponentLoader.h(91) : see declaration of 'mozJSComponentLoader' d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozJSComponentLoader.h(150) : error C2039: 'mContext' : is not a member of 'mozJSComponentLoader' d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozJSComponentLoader.h(91) : see declaration of 'mozJSComponentLoader' d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozJSComponentLoader.h(151) : error C2039: 'mContext' : is not a member of 'mozJSComponentLoader' d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozJSComponentLoader.h(91) : see declaration of 'mozJSComponentLoader' d:\mozilla\mozilla_build\dist\include\xpcom\nsCOMPtr.h(228) : warning C4624: 'nsDerivedSafe<T>' : destructor could not be generated because a base class destructor is inaccessible with [ T=nsXPCFastLoadIO ] d:/mozilla/mozilla_source/mozilla/js/src/xpconnect/loader/mozJSComponentLoader.cpp(841) : see reference to class template instantiation 'nsDerivedSafe<T>' being compiled with [ T=nsXPCFastLoadIO ] make[5]: *** [mozJSComponentLoader.obj] Error 2 make[5]: Leaving directory `/d/mozilla/mozilla_build/js/src/xpconnect/loader' make[4]: *** [libs] Error 2 make[4]: Leaving directory `/d/mozilla/mozilla_build/js/src/xpconnect' make[3]: *** [libs_tier_gecko] Error 2 make[3]: Leaving directory `/d/mozilla/mozilla_build' make[2]: *** [tier_gecko] Error 2 make[2]: Leaving directory `/d/mozilla/mozilla_build' make[1]: *** [default] Error 2 make[1]: Leaving directory `/d/mozilla/mozilla_build' make: *** [build] Error 2
there's probably an xpconnect owned jscontext available per thread, i should try to find/use it. this patch creates one JSContext per module, which is fairly expensive given how rarely the context would be use. whereas we only need one context per thread.
Attachment #305599 - Attachment is obsolete: true
Attachment #305794 - Flags: review?(christianha1111)
Attachment #305599 - Flags: review?(christianha1111)
I build everything again. The good thing is, it doesn’t terminate unfortunately it now seems to freeze. I had to break WinDbg manually. I can’t read the trace but my printf commands say, that it never returns from nsCOMPtr<nsIJackFGraphicExtension> plugy = do_CreateInstance("@mozilla.org/jackfjackftemplate;1", &rv); I put in some more error checking so pleas use the new example. The new trace is: http://pastebin.mozilla.org/346425 It is really long, I’ve got 99 worker threads. I think Thread number 10 is the first interesting one. His stack is: 0:009> ~10 kp ChildEBP RetAddr 03bdf8a4 7c91e9c0 ntdll!KiFastSystemCallRet 03bdf8a8 7c8025cb ntdll!ZwWaitForSingleObject+0xc 03bdf90c 7c802532 kernel32!WaitForSingleObjectEx+0xa8 03bdf920 003563c8 kernel32!WaitForSingleObject+0x12 03bdf93c 0034fbac nspr4!_PR_MD_WAIT_CV(struct _MDCVar * cv = 0xffffffff, struct _MDLock * lock = 0x00000000, unsigned int timeout = 0)+0x58 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\md\windows\w95cv.c @ 282] 03bdf954 003500f4 nspr4!_PR_WaitCondVar(struct PRThread * thread = 0x004635a4, struct PRCondVar * cvar = 0x03ff91f8, struct PRLock * lock = 0x00000011, unsigned int timeout = 0x2bee6f)+0x9c [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 205] 03bdf970 0044a27f nspr4!PR_WaitCondVar(struct PRCondVar * cvar = 0x004635a4, unsigned int timeout = 0x3ff91f8)+0x64 [d:\mozilla\mozilla_source\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 551] 03bdfa30 004635a4 js3250!js_GC(struct JSContext * cx = 0x03ff91f8, JSGCInvocationKind gckind = GC_SET_SLOT_REQUEST (17))+0x1af [d:\mozilla\mozilla_source\mozilla\js\src\jsgc.c @ 2558] 03bdfa60 0041a8be js3250!js_SetProtoOrParent(struct JSContext * cx = 0x03ff91f8, struct JSObject * obj = 0x02f70760, unsigned long slot = 1, struct JSObject * pobj = 0x02f70780)+0x114 [d:\mozilla\mozilla_source\mozilla\js\src\jsobj.c @ 302] 03bdfa78 00ede852 js3250!JS_SetParent(struct JSContext * cx = 0x00000003, struct JSObject * obj = 0x00000000, struct JSObject * parent = 0x002b105b)+0x4e [d:\mozilla\mozilla_source\mozilla\js\src\jsapi.c @ 2893] 03bdfb70 00f246af xpc3250!nsXPConnect::InitClassesWithNewWrappedGlobal(struct JSContext * aJSContext = 0x03ff91f8, class nsISupports * aCOMObj = 0x00c2fd54, struct nsID * aIID = 0x00f34ef4, unsigned int aFlags = 2, class nsIXPConnectJSObjectHolder ** _retval = 0x03bdfc10)+0x2e8 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\src\nsxpconnect.cpp @ 1200] 03bdfccc 00f2550d xpc3250!mozJSComponentLoader::GlobalForLocation(class nsILocalFile * aComponent = 0x03ff4e48, struct JSObject ** aGlobal = 0x03ff4fb8, char ** aLocation = 0x03ff4fbc)+0x245 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1061] 03bdfdf4 002b3e51 xpc3250!mozJSComponentLoader::LoadModule(class nsILocalFile * aComponentFile = 0x03ff4e48, class nsIModule ** aResult = 0x03bdfe34)+0x1c7 [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 600] 03bdfe38 002b4360 xpcom_core!nsFactoryEntry::GetFactory(class nsIFactory ** aFactory = 0x03bdfe64)+0x13a [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 3544] 03bdfe4c 02f83542 xpcom_core!nsComponentManagerImpl::CreateInstanceByContractID(char * aContractID = 0x02f87a7c "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02f87998, void ** aResult = 0x00000000)+0x5d [d:\mozilla\mozilla_source\mozilla\xpcom\components\nscomponentmanager.cpp @ 1753] 03bdfe74 02f83647 jackf!CallCreateInstance(char * aContractID = 0x02f87a7c "@mozilla.org/jackfjackftemplate;1", class nsISupports * aDelegate = 0x00000000, struct nsID * aIID = 0x02f87998, void ** aResult = 0x03bdfea8)+0x4e [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 120] 03bdfe90 02f8213f jackf!nsCreateInstanceByContractID::operator()(struct nsID * aIID = 0x02fa3ff8, void ** aInstancePtr = 0x02f82292)+0x15 [d:\mozilla\mozilla_source\mozilla\xpcom\glue\nscomponentmanagerutils.cpp @ 210] 03bdfea0 02f82292 jackf!nsCOMPtr<nsIJackFGraphicExtension>::assign_from_helper(class nsCOMPtr_helper * helper = 0x00000000, struct nsID * aIID = 0x02f87998)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 1335] 03bdfeb0 02f822e9 jackf!nsCOMPtr<nsIJackFGraphicExtension>::nsCOMPtr<nsIJackFGraphicExtension>(class nsCOMPtr_helper * helper = 0x002bb748)+0x14 [d:\mozilla\mozilla_second_build\dist\include\xpcom\nscomptr.h @ 695] 03bdfedc 002bb748 jackf!nsJackFWorker::Run(void)+0x42 [d:\mozilla\mozilla_source\mozilla\extensions\jackf\src\nsjackfworker.cpp @ 27] 0:010> dt lock Local var @ 0xbed0bc Type _MDLock* (null) 0:010> dt lock->mutex *** WARNING: Unable to verify checksum for C:\Programme\Bonjour\mdnsNSP.dll *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Programme\Bonjour\mdnsNSP.dll - *** ERROR: Module load completed but symbols could not be loaded for C:\WINDOWS\system32\xpsp2res.dll Symbol lock->mutex not found.
Attachment #305363 - Attachment is obsolete: true
!analyze -v -hang
ok, that's the result. http://pastebin.mozilla.org/346858 thanks christian
hrm, unfortunate. pastebin: ~* kp
Attachment #305794 - Attachment is obsolete: true
Attachment #306139 - Flags: review?(christianha1111)
Attachment #305794 - Flags: review?(christianha1111)
Hi, I have undone the last patch and applied the new one. If got the following build error. http://pastebin.mozilla.org/347697 If I understood it right, you always have to provide ~* kp for a useful stack? thanks christian
if you're hanging, it's nice to include the analyze output, but for now since output in a pastebin or attachments are free, yes, always add a ~* kp or similar. I think from reading as I wrote the previous patch that I basically left an unbalanced request open in a bad place so there wasn't another interesting thread.
Attached patch initializer :( (obsolete) — Splinter Review
Attachment #306139 - Attachment is obsolete: true
Attachment #306222 - Flags: review?(christianha1111)
Attachment #306139 - Flags: review?(christianha1111)
I got this error: am I doing something wrong? http://pastebin.mozilla.org/347883
Attached patch oopsSplinter Review
no, i just really don't have a build environment for this work
Attachment #306222 - Attachment is obsolete: true
Attachment #306259 - Flags: review?(christianha1111)
Attachment #306222 - Flags: review?(christianha1111)
no problem. I'll try whatever you post. It build but I've an other errors when I start tb. http://pastebin.mozilla.org/348089 ~* kp = http://pastebin.mozilla.org/348090 maybe the problem is somewhere here 0012fba8 00f33ebd xpc3250!mozJSComponentLoader::ModuleEntry::~ModuleEntry(void)+0x5d [d:\mozilla\mozilla_source\mozilla\js\src\xpconnect\loader\mozjscomponentloader.cpp @ 1558] cx at this poit is: 0:000> dt cx Local var @ 0x12fb9c Type JSCLContextHelper +0x000 mContext : (null) +0x004 mOptions : 0x1021e1d0 +0x008 mVersion : 0x12fbc8 (No matching name)
ok, that's going to take some debugging breakpoint JSCLContextHelper::JSCLContextHelper and find out why it doesn't set mContext. It'd also be good if you could compare similar code which tries to get a context to see what's different. I'll look on Sunday.
I have tried to find something useful. Maybe I'm worng but what I found is strange. You where right. JSCLContextHelper::JSCLContextHelper() : mContext(0) { nsCOMPtr<nsIThreadJSContextStack> jsContextStack = do_GetService("@mozilla.org/js/xpc/ContextStack;1"); if (!jsContextStack) return; ... } returns and jsContextStack == null first the stacks: ~*kp: http://pastebin.mozilla.org/348957 The calling of do_GetService("@mozilla.org/js/xpc/ContextStack;1"); ends in here with a strange problem NS_IMETHODIMP nsComponentManagerImpl::GetServiceByContractID(const char* aContractID, const nsIID& aIID, void* *result) { // test this first, since there's no point in returning a service during // shutdown -- whether it's available or not would depend on the order it // occurs in the list if (gXPCOMShuttingDown) { // When processing shutdown, don't process new GetService() requests #ifdef SHOW_DENIED_ON_SHUTDOWN nsXPIDLCString iid; iid.Adopt(aIID.ToString()); fprintf(stderr, "Getting service on shutdown. Denied.\n" " ContractID: %s\n IID: %s\n", aContractID, iid.get()); #endif /* SHOW_DENIED_ON_SHUTDOWN */ return NS_ERROR_UNEXPECTED; } It returns with NS_ERROR_UNEXPECTED because gXPCOMShuttingDown == ture 0:000> dt gXPCOMShuttingDown xpcom_core!gXPCOMShuttingDown 1
I tried something else. Straight before gXPCOMShuttingDown == ture I get the following output: http://pastebin.mozilla.org/349019 the stacktrace is: http://pastebin.mozilla.org/349020 It seams that xpcom is really shuting down.
Depends on: 421877
timeless: This bug seems to have stalled over a year ago. Is this bug still desired or should we just drop it?
Keywords: testcase
Whiteboard: [sg:nse]
it's still desired
Whiteboard: [sg:nse] → [sg:nse][ccbr]
I get the exact same type of problem (crash) when using a Python thread (PyXPCOM) that tries to instantiate a JS XPCOM component. I was querying the list of logins from the nsILoginManager (which uses JavaScript components) from a Python thread, stack trace below: #0 XPCJSContextStack::Pop (this=0x47fb8f0, _retval=<value optimized out>) at /home/toddw/as/komodo-devel_publishing/mozilla/build/moz191-ko6.14/mozilla/js/src/xpconnect/src/xpcthreadcontext.cpp:105 #1 0x00007fffe688915a in JSCLContextHelper::Pop() () from /home/toddw/as/komodo-devel_publishing/mozilla/build/moz191-ko6.14/mozilla/ko-rel-gtk2-ns-tools/dist/bin/components/libxpconnect.so #2 0x00007fffe688ae56 in mozJSComponentLoader::GlobalForLocation(nsILocalFile*, JSObject**, char**, long*) () from /home/toddw/as/komodo-devel_publishing/mozilla/build/moz191-ko6.14/mozilla/ko-rel-gtk2-ns-tools/dist/bin/components/libxpconnect.so #3 0x00007fffe688bceb in mozJSComponentLoader::LoadModule(nsILocalFile*, nsIModule**) () from /home/toddw/as/komodo-devel_publishing/mozilla/build/moz191-ko6.14/mozilla/ko-rel-gtk2-ns-tools/dist/bin/components/libxpconnect.so #4 0x00007ffff726285f in nsFactoryEntry::GetFactory(nsIFactory**) () from ./libxpcom_core.so #5 0x00007ffff7262988 in nsComponentManagerImpl::CreateInstanceByContractID(char const*, nsISupports*, nsID const&, void**) () from ./libxpcom_core.so #6 0x00007ffff72639e5 in nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**) () from ./libxpcom_core.so #7 0x00007ffff7272f29 in NS_InvokeByIndex_P () from ./libxpcom_core.so #8 0x00007fffe80cfa9b in PyXPCOMMethod_NS_InvokeByIndex(_object*, _object*) () from /home/toddw/as/komodo-devel_publishing/mozilla/build/moz191-ko6.14/mozil From some digging, I rolled back changes made in bug 477924 and bug 444880 (regarding the JS context stack) and this resulted in the code running successfully (Note: these afore mentioned bug changes were made well after the initial reporters comment date, so it may be just coincidence?).
Attachment #306259 - Flags: review?(christianha1111)
We have since actively disallowed this behavior... you cannot use xpconnect from other threads.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: