Closed Bug 326961 Opened 19 years ago Closed 18 years ago

JS_BeginRequest should JS_ASSERT(cx->thread == js_GetCurrentThreadId())

Categories

(Core :: JavaScript Engine, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: timeless, Assigned: timeless)

Details

(Keywords: fixed1.8.1)

Attachments

(1 obsolete file)

I'm almost done making jsd+venkman friendly with threads.
unfortunately my jsd code isn't perfect and didn't call js_clearcontextthread, nor did the other thread call js_setcontextthread.

the end result is that the main thread called js_beginrequest on a cx which was in use on another thread (in violation of the contract listed in js_setcontextthread). my code then foolishly tried to use other jsapis and eventually got killed because cx->thread wasn't right.

thread that yielded without releasing cx association: (aff4)
00 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
01 ntdll!ZwWaitForSingleObject+0xc (FPO: [3,0,0])
02 kernel32!WaitForSingleObjectEx+0xa8 (FPO: [Non-Fpo])
03 kernel32!WaitForSingleObject+0x12 (FPO: [Non-Fpo])
04 nspr4!_PR_MD_WAIT_CV(struct _MDCVar * cv = 0x05f45ebc, struct _MDLock * lock = 0x05f45db4, unsigned int timeout = 0xffffffff)+0x7f (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\md\windows\w95cv.c @ 280]
05 nspr4!_PR_WaitCondVar(struct PRThread * thread = 0x04f1cc78, struct PRCondVar * cvar = 0x05f45e48, struct PRLock * lock = 0x05f45d98, unsigned int timeout = 0xffffffff)+0xd1 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 204]
06 nspr4!PR_Wait(struct PRMonitor * mon = 0x05f45d60, unsigned int ticks = 0xffffffff)+0x53 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\threads\prmon.c @ 175]
07 xpcom_core!PL_WaitForEvent(struct PLEventQueue * self = 0x05f45d10)+0x68 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 808]
08 xpcom_core!nsEventQueueImpl::WaitForEvent(struct PLEvent ** aResult = 0x02adee98)+0x52 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\threads\nseventqueue.cpp @ 500]
09 xpcom_core!nsProxyObject::PostAndWait(class nsProxyObjectCallInfo * proxyInfo = 0x04861330)+0x1ad (FPO: [Non-Fpo]) (CONV: thiscall) [r:\mozilla\xpcom\proxy\src\nsproxyevent.cpp @ 391]
0a xpcom_core!nsProxyObject::Post(unsigned int methodIndex = 3, class nsXPTMethodInfo * methodInfo = 0x02f28f38, struct nsXPTCMiniVariant * params = 0x02adef4c, class nsIInterfaceInfo * interfaceInfo = 0x02f322c0)+0x1d6 (FPO: [Non-Fpo]) (CONV: thiscall) [r:\mozilla\xpcom\proxy\src\nsproxyevent.cpp @ 511]
0b xpcom_core!nsProxyEventObject::CallMethod(unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x02f28f38, struct nsXPTCMiniVariant * params = 0x02adef4c)+0x45 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\proxy\src\nsproxyeventobject.cpp @ 559]
0c xpcom_core!PrepareAndDispatch(class nsXPTCStubBase * self = 0x03515838, unsigned int methodIndex = 3, unsigned int * args = 0x02adf014, unsigned int * stackBytesToPop = 0x02adf004)+0x337 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 117]
0d xpcom_core!SharedStub(void)+0x16 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 147]
0e jsd3250!jsds_ExecutionHookProc(struct JSDContext * jsdc = 0x00c87e68, struct JSDThreadState * jsdthreadstate = 0x04861138, unsigned int type = 1, void * callerdata = 0x00000001, long * rval = 0x02adfa20)+0x2cb (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_xpc.cpp @ 688]
0f jsd3250!jsd_CallExecutionHook(struct JSDContext * jsdc = 0x00c87e68, struct JSContext * cx = 0x05e0bd60, unsigned int type = 1, <function> * hook = 0x01081e20, void * hookData = 0x00000001, long * rval = 0x02adfa20)+0x71 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_hook.c @ 177]
10 jsd3250!jsd_TrapHandler(struct JSContext * cx = 0x05e0bd60, struct JSScript * script = 0x016929d0, unsigned char * pc = 0x01692a02 "S", long * rval = 0x02adfa20, void * closure = 0x05fac561)+0x1bf (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_scpt.c @ 743]
11 js3250!JS_HandleTrap(struct JSContext * cx = 0x05e0bd60, struct JSScript * script = 0x016929d0, unsigned char * pc = 0x01692a02 "S", long * rval = 0x02adfa20)+0x67 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsdbgapi.c @ 217]
12 js3250!js_Interpret(struct JSContext * cx = 0x05e0bd60, unsigned char * pc = 0x01692a02 "S", long * result = 0x02adfb70)+0x108d4 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 4397]
13 js3250!js_Invoke(struct JSContext * cx = 0x05e0bd60, unsigned int argc = 0, unsigned int flags = 2)+0xdcd (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1258]
14 xpc3250!nsXPCWrappedJSClass::CallMethod(class nsXPCWrappedJS * wrapper = 0x05d71e98, unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x017794e0, struct nsXPTCMiniVariant * nativeParams = 0x02adfe84)+0xd17 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp @ 1507]
15 xpc3250!nsXPCWrappedJS::CallMethod(unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x017794e0, struct nsXPTCMiniVariant * params = 0x02adfe84)+0x3f (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp @ 519]
16 xpcom_core!PrepareAndDispatch(class nsXPTCStubBase * self = 0x05d71e98, unsigned int methodIndex = 3, unsigned int * args = 0x02adff4c, unsigned int * stackBytesToPop = 0x02adff3c)+0x337 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 117]
17 xpcom_core!SharedStub(void)+0x16 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 147]
18 xpcom_core!nsThread::Main(void * arg = 0x06071978)+0x8e (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\nsthread.cpp @ 118]
19 nspr4!_PR_NativeRunThread(void * arg = 0x04f1cc78)+0xd9 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436]
1a nspr4!pr_root(void * arg = 0x04f1cc78)+0x17 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 120]
1b MSVCR71D!_threadstartex(void * ptd = 0x060c0e30)+0xb6 (FPO: [Non-Fpo]) (CONV: stdcall) [f:\vs70builds\3077\vc\crtbld\crt\src\threadex.c @ 241]
1c kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])

thread that asserted (11794)
00 ntdll!DbgBreakPoint (FPO: [0,0,0])
01 js3250!JS_Assert(char * s = 0x01049e7c "me == CurrentThreadId()", char * file = 0x01049e98 "r:/mozilla/js/src/jslock.c", int ln = 1039)+0x2c (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsutil.c @ 62]
02 js3250!js_Lock(struct JSThinLock * tl = 0x00cc33e0, long me = 82955384)+0x24 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jslock.c @ 1039]
03 js3250!js_AtomizeString(struct JSContext * cx = 0x05e0bd60, struct JSString * str = 0x0012e610, unsigned int flags = 0x80)+0x5a (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsatom.c @ 654]
04 js3250!js_Atomize(struct JSContext * cx = 0x05e0bd60, char * bytes = 0x0101e0a8 "Object", unsigned int length = 6, unsigned int flags = 0)+0xb5 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsatom.c @ 739]
05 js3250!js_FindConstructor(struct JSContext * cx = 0x05e0bd60, struct JSObject * start = 0x00000000, char * name = 0x0101e0a8 "Object", long * vp = 0x0012e6d4)+0x22 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsobj.c @ 2070]
06 js3250!GetClassPrototype(struct JSContext * cx = 0x05e0bd60, struct JSObject * scope = 0x00000000, char * name = 0x0101e0a8 "Object", struct JSObject ** protop = 0x0012e738)+0x1b (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsobj.c @ 3865]
07 js3250!js_NewObject(struct JSContext * cx = 0x05e0bd60, struct JSClass * clasp = 0x0103acb0, struct JSObject * proto = 0x00000000, struct JSObject * parent = 0x00000000)+0x23 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsobj.c @ 1970]
08 js3250!js_GetArgsObject(struct JSContext * cx = 0x05e0bd60, struct JSStackFrame * fp = 0x052e63d0)+0x40 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsfun.c @ 249]
09 js3250!JS_GetFrameCallObject(struct JSContext * cx = 0x05e0bd60, struct JSStackFrame * fp = 0x052e63d0)+0x1d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsdbgapi.c @ 803]
0a js3250!JS_GetFrameScopeChain(struct JSContext * cx = 0x05e0bd60, struct JSStackFrame * fp = 0x052e63d0)+0x10 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsdbgapi.c @ 792]
0b jsd3250!jsd_GetScopeChainForStackFrame(struct JSDContext * jsdc = 0x00c87e68, struct JSDThreadState * jsdthreadstate = 0x04861138, struct JSDStackFrameInfo * jsdframe = 0x04861188)+0x5b (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_stak.c @ 322]
0c jsd3250!JSD_GetScopeChainForStackFrame(struct JSDContext * jsdc = 0x00c87e68, struct JSDThreadState * jsdthreadstate = 0x04861138, struct JSDStackFrameInfo * jsdframe = 0x04861188)+0x20 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsdebug.c @ 713]
0d jsd3250!jsdStackFrame::GetScope(class jsdIValue ** _rval = 0x0012e8f0)+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\jsd\jsd_xpc.cpp @ 1934]
0e xpcom_core!XPTC_InvokeByIndex(class nsISupports * that = 0x04861218, unsigned int methodIndex = 0x12, unsigned int paramCount = 1, struct nsXPTCVariant * params = 0x0012e8f0)+0x27 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp @ 102]
0f xpc3250!XPCWrappedNative::CallMethod(class XPCCallContext * ccx = 0x0012eab8, XPCWrappedNative::CallMode mode = CALL_GETTER (1))+0xdd5 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp @ 2155]
10 xpc3250!XPCWrappedNative::GetAttribute(class XPCCallContext * ccx = 0x0012eab8)+0xe (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\xpconnect\src\xpcprivate.h @ 1972]
11 xpc3250!XPC_WN_GetterSetter(struct JSContext * cx = 0x01670620, struct JSObject * obj = 0x0458b5a8, unsigned int argc = 0, long * argv = 0x05e07164, long * vp = 0x0012ebe0)+0x23a (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp @ 1503]
12 js3250!js_Invoke(struct JSContext * cx = 0x01670620, unsigned int argc = 0, unsigned int flags = 2)+0xd5d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1234]
13 js3250!js_InternalInvoke(struct JSContext * cx = 0x01670620, struct JSObject * obj = 0x0458b5a8, long fval = 72922320, unsigned int flags = 0, unsigned int argc = 0, long * argv = 0x00000000, long * rval = 0x0012f708)+0x115 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1335]
14 js3250!js_InternalGetOrSet(struct JSContext * cx = 0x01670620, struct JSObject * obj = 0x0458b5a8, long id = 24605232, long fval = 72922320, JSAccessMode mode = JSACC_READ (4), unsigned int argc = 0, long * argv = 0x00000000, long * rval = 0x0012f708)+0x215 (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1394]
15 js3250!js_GetProperty(struct JSContext * cx = 0x01670620, struct JSObject * obj = 0x0458b5a8, long id = 24605232, long * vp = 0x0012f708)+0x516 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsobj.c @ 2983]
16 js3250!js_Interpret(struct JSContext * cx = 0x01670620, unsigned char * pc = 0x02f2eeae "5", long * result = 0x0012f858)+0xbe75 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 3615]
17 js3250!js_Invoke(struct JSContext * cx = 0x01670620, unsigned int argc = 3, unsigned int flags = 2)+0xdcd (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1258]
18 xpc3250!nsXPCWrappedJSClass::CallMethod(class nsXPCWrappedJS * wrapper = 0x035155c8, unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x02f28f38, struct nsXPTCMiniVariant * nativeParams = 0x0012fb6c)+0xd17 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp @ 1507]
19 xpc3250!nsXPCWrappedJS::CallMethod(unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x02f28f38, struct nsXPTCMiniVariant * params = 0x0012fb6c)+0x3f (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp @ 519]
1a xpcom_core!PrepareAndDispatch(class nsXPTCStubBase * self = 0x035155c8, unsigned int methodIndex = 3, unsigned int * args = 0x0012fc34, unsigned int * stackBytesToPop = 0x0012fc24)+0x337 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 117]
1b xpcom_core!SharedStub(void)+0x16 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 147]
1c xpcom_core!XPTC_InvokeByIndex(class nsISupports * that = 0x035155c8, unsigned int methodIndex = 3, unsigned int paramCount = 4, struct nsXPTCVariant * params = 0x04861270)+0x27 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp @ 102]
1d xpcom_core!EventHandler(struct PLEvent * self = 0x048612e0)+0x72 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\proxy\src\nsproxyevent.cpp @ 561]
1e xpcom_core!PL_HandleEvent(struct PLEvent * self = 0x048612e0)+0x3d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 688]
1f xpcom_core!PL_ProcessPendingEvents(struct PLEventQueue * self = 0x00cfba98)+0xc7 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 623]
20 xpcom_core!_md_TimerProc(struct HWND__ * hwnd = 0x00d50134, unsigned int uMsg = 0x113, unsigned int idEvent = 0, unsigned long dwTime = 0x9b0c6fd)+0x5d (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\threads\plevent.c @ 1013]
21 USER32!InternalCallWinProc+0x28
22 USER32!UserCallWinProc+0xf3 (FPO: [Non-Fpo])
23 USER32!DispatchMessageWorker+0x10e (FPO: [Non-Fpo])
24 USER32!DispatchMessageW+0xf (FPO: [Non-Fpo])
25 gkwidget!nsAppShell::Run(void)+0x108 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\widget\src\windows\nsappshell.cpp @ 135]
26 appcomps!nsAppStartup::Run(void)+0x1e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpfe\components\startup\src\nsappstartup.cpp @ 208]
27 seamonkey!main1(int argc = 5, char ** argv = 0x00348450, class nsISupports * nativeApp = 0x00c792e8)+0xbf9 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpfe\bootstrap\nsapprunner.cpp @ 1248]
28 seamonkey!main(int argc = 5, char ** argv = 0x00348450)+0x1bb (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpfe\bootstrap\nsapprunner.cpp @ 1750]
29 seamonkey!mainCRTStartup(void)+0x12c (FPO: [Non-Fpo]) (CONV: cdecl) [f:\vs70builds\3077\vc\crtbld\crt\src\crtexe.c @ 398]
2a kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo])

Assertion failure: me == CurrentThreadId(), at r:/mozilla/js/src/jslock.c:1039
Summary: JS_BeginReqiest should JS_ASSERT(cx->thread == js_GetCurrentThreadId()) → JS_BeginRequest should JS_ASSERT(cx->thread == js_GetCurrentThreadId())
Attached patch make assertion catch my error (obsolete) — Splinter Review
stealing thread:
00 ntdll!DbgBreakPoint (FPO: [0,0,0])
01 js3250!JS_Assert(char * s = 0x0100c060 "cx->thread == js_CurrentThreadId()", char * file = 0x0100c044 "r:/mozilla/js/src/jsapi.c", int ln = 803)+0x2c (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsutil.c @ 62]
02 js3250!JS_BeginRequest(struct JSContext * cx = 0x04c5f008)+0x2a (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsapi.c @ 803]
03 jsd3250!jsd_GetScopeChainForStackFrame(struct JSDContext * jsdc = 0x00c78010, struct JSDThreadState * jsdthreadstate = 0x055b0478, struct JSDStackFrameInfo * jsdframe = 0x055b04c8)+0x44 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_stak.c @ 321]
04 jsd3250!JSD_GetScopeChainForStackFrame(struct JSDContext * jsdc = 0x00c78010, struct JSDThreadState * jsdthreadstate = 0x055b0478, struct JSDStackFrameInfo * jsdframe = 0x055b04c8)+0x20 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsdebug.c @ 713]
05 jsd3250!jsdStackFrame::GetScope(class jsdIValue ** _rval = 0x0012e478)+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\jsd\jsd_xpc.cpp @ 1934]
06 xpcom_core!XPTC_InvokeByIndex(class nsISupports * that = 0x055b0558, unsigned int methodIndex = 0x12, unsigned int paramCount = 1, struct nsXPTCVariant * params = 0x0012e478)+0x27 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp @ 102]
07 xpc3250!XPCWrappedNative::CallMethod(class XPCCallContext * ccx = 0x0012e640, XPCWrappedNative::CallMode mode = CALL_GETTER (1))+0xdd5 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp @ 2155]
08 xpc3250!XPCWrappedNative::GetAttribute(class XPCCallContext * ccx = 0x0012e640)+0xe (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\xpconnect\src\xpcprivate.h @ 1972]
09 xpc3250!XPC_WN_GetterSetter(struct JSContext * cx = 0x01a9a290, struct JSObject * obj = 0x04450278, unsigned int argc = 0, long * argv = 0x04a70764, long * vp = 0x0012e768)+0x23a (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp @ 1503]
0a js3250!js_Invoke(struct JSContext * cx = 0x01a9a290, unsigned int argc = 0, unsigned int flags = 2)+0xd5d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1234]
0b js3250!js_InternalInvoke(struct JSContext * cx = 0x01a9a290, struct JSObject * obj = 0x04450278, long fval = 71631376, unsigned int flags = 0, unsigned int argc = 0, long * argv = 0x00000000, long * rval = 0x0012f290)+0x115 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1335]
0c js3250!js_InternalGetOrSet(struct JSContext * cx = 0x01a9a290, struct JSObject * obj = 0x04450278, long id = 24488104, long fval = 71631376, JSAccessMode mode = JSACC_READ (4), unsigned int argc = 0, long * argv = 0x00000000, long * rval = 0x0012f290)+0x215 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1394]
0d js3250!js_GetProperty(struct JSContext * cx = 0x01a9a290, struct JSObject * obj = 0x04450278, long id = 24488104, long * vp = 0x0012f290)+0x516 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsobj.c @ 2983]
0e js3250!js_Interpret(struct JSContext * cx = 0x01a9a290, unsigned char * pc = 0x035501ae "5", long * result = 0x0012f3e0)+0xbe75 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 3615]
0f js3250!js_Invoke(struct JSContext * cx = 0x01a9a290, unsigned int argc = 3, unsigned int flags = 2)+0xdcd (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1258]
10 xpc3250!nsXPCWrappedJSClass::CallMethod(class nsXPCWrappedJS * wrapper = 0x03a28a98, unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x0354ab58, struct nsXPTCMiniVariant * nativeParams = 0x0012f6f4)+0xd17 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp @ 1507]
11 xpc3250!nsXPCWrappedJS::CallMethod(unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x0354ab58, struct nsXPTCMiniVariant * params = 0x0012f6f4)+0x3f (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp @ 519]
12 xpcom_core!PrepareAndDispatch(class nsXPTCStubBase * self = 0x03a28a98, unsigned int methodIndex = 3, unsigned int * args = 0x0012f7bc, unsigned int * stackBytesToPop = 0x0012f7ac)+0x337 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 117]
13 xpcom_core!SharedStub(void)+0x16 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 147]
14 xpcom_core!XPTC_InvokeByIndex(class nsISupports * that = 0x03a28a98, unsigned int methodIndex = 3, unsigned int paramCount = 4, struct nsXPTCVariant * params = 0x055b05b0)+0x27 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp @ 102]
15 xpcom_core!EventHandler(struct PLEvent * self = 0x055b0620)+0x72 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\proxy\src\nsproxyevent.cpp @ 561]
16 xpcom_core!PL_HandleEvent(struct PLEvent * self = 0x055b0620)+0x3d (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 688]
17 xpcom_core!PL_ProcessPendingEvents(struct PLEventQueue * self = 0x00cfbaf8)+0xc7 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 623]
18 xpcom_core!nsEventQueueImpl::ProcessPendingEvents(void)+0x57 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\threads\nseventqueue.cpp @ 419]
19 gkwidget!nsWindow::DispatchPendingEvents(void)+0x7f (FPO: [Non-Fpo]) (CONV: thiscall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 4148]
1a gkwidget!nsWindow::ProcessMessage(unsigned int msg = 0x200, unsigned int wParam = 0, long lParam = 131230, long * aRetValue = 0x0012fc84)+0xa49 (FPO: [Non-Fpo]) (CONV: thiscall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 4527]
1b gkwidget!nsWindow::WindowProc(struct HWND__ * hWnd = 0x00440cec, unsigned int msg = 0x200, unsigned int wParam = 0, long lParam = 131230)+0x131 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\widget\src\windows\nswindow.cpp @ 1359]
1c USER32!InternalCallWinProc+0x28
1d USER32!UserCallWinProcCheckWow+0x150 (FPO: [Non-Fpo])
1e USER32!DispatchMessageWorker+0x306 (FPO: [Non-Fpo])
1f USER32!DispatchMessageW+0xf (FPO: [Non-Fpo])
20 gkwidget!nsAppShell::Run(void)+0x108 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\widget\src\windows\nsappshell.cpp @ 135]
21 appcomps!nsAppStartup::Run(void)+0x1e (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpfe\components\startup\src\nsappstartup.cpp @ 208]
22 seamonkey!main1(int argc = 3, char ** argv = 0x00348498, class nsISupports * nativeApp = 0x00c82d88)+0xbf9 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpfe\bootstrap\nsapprunner.cpp @ 1248]
23 seamonkey!main(int argc = 3, char ** argv = 0x00348498)+0x1bb (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpfe\bootstrap\nsapprunner.cpp @ 1750]
24 seamonkey!mainCRTStartup(void)+0x12c (FPO: [Non-Fpo]) (CONV: cdecl) [f:\vs70builds\3077\vc\crtbld\crt\src\crtexe.c @ 398]
25 kernel32!BaseProcessStart+0x23 (FPO: [Non-Fpo])

owning thread;
00 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
01 ntdll!ZwWaitForSingleObject+0xc (FPO: [3,0,0])
02 kernel32!WaitForSingleObjectEx+0xa8 (FPO: [Non-Fpo])
03 kernel32!WaitForSingleObject+0x12 (FPO: [Non-Fpo])
04 nspr4!_PR_MD_WAIT_CV(struct _MDCVar * cv = 0x0559009c, struct _MDLock * lock = 0x055b077c, unsigned int timeout = 0xffffffff)+0x7f (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\md\windows\w95cv.c @ 280]
05 nspr4!_PR_WaitCondVar(struct PRThread * thread = 0x051dee30, struct PRCondVar * cvar = 0x05590028, struct PRLock * lock = 0x055b0760, unsigned int timeout = 0xffffffff)+0xd1 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\threads\combined\prucv.c @ 204]
06 nspr4!PR_Wait(struct PRMonitor * mon = 0x055c68b0, unsigned int ticks = 0xffffffff)+0x53 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\threads\prmon.c @ 175]
07 xpcom_core!PL_WaitForEvent(struct PLEventQueue * self = 0x055b0710)+0x68 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\plevent.c @ 808]
08 xpcom_core!nsEventQueueImpl::WaitForEvent(struct PLEvent ** aResult = 0x02c3ee98)+0x52 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\threads\nseventqueue.cpp @ 500]
09 xpcom_core!nsProxyObject::PostAndWait(class nsProxyObjectCallInfo * proxyInfo = 0x055b0670)+0x1ad (FPO: [Non-Fpo]) (CONV: thiscall) [r:\mozilla\xpcom\proxy\src\nsproxyevent.cpp @ 391]
0a xpcom_core!nsProxyObject::Post(unsigned int methodIndex = 3, class nsXPTMethodInfo * methodInfo = 0x0354ab58, struct nsXPTCMiniVariant * params = 0x02c3ef4c, class nsIInterfaceInfo * interfaceInfo = 0x03555668)+0x1d6 (FPO: [Non-Fpo]) (CONV: thiscall) [r:\mozilla\xpcom\proxy\src\nsproxyevent.cpp @ 511]
0b xpcom_core!nsProxyEventObject::CallMethod(unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x0354ab58, struct nsXPTCMiniVariant * params = 0x02c3ef4c)+0x45 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\proxy\src\nsproxyeventobject.cpp @ 559]
0c xpcom_core!PrepareAndDispatch(class nsXPTCStubBase * self = 0x03a28d08, unsigned int methodIndex = 3, unsigned int * args = 0x02c3f014, unsigned int * stackBytesToPop = 0x02c3f004)+0x337 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 117]
0d xpcom_core!SharedStub(void)+0x16 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 147]
0e jsd3250!jsds_ExecutionHookProc(struct JSDContext * jsdc = 0x00c78010, struct JSDThreadState * jsdthreadstate = 0x055b0478, unsigned int type = 1, void * callerdata = 0x00000001, long * rval = 0x02c3fa20)+0x2cb (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_xpc.cpp @ 688]
0f jsd3250!jsd_CallExecutionHook(struct JSDContext * jsdc = 0x00c78010, struct JSContext * cx = 0x04c5f008, unsigned int type = 1, <function> * hook = 0x01061e20, void * hookData = 0x00000001, long * rval = 0x02c3fa20)+0x71 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_hook.c @ 177]
10 jsd3250!jsd_TrapHandler(struct JSContext * cx = 0x04c5f008, struct JSScript * script = 0x016729d0, unsigned char * pc = 0x01672a01 "S;", long * rval = 0x02c3fa20, void * closure = 0x05297531)+0x1bf (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\jsd\jsd_scpt.c @ 743]
11 js3250!JS_HandleTrap(struct JSContext * cx = 0x04c5f008, struct JSScript * script = 0x016729d0, unsigned char * pc = 0x01672a01 "S;", long * rval = 0x02c3fa20)+0x67 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsdbgapi.c @ 217]
12 js3250!js_Interpret(struct JSContext * cx = 0x04c5f008, unsigned char * pc = 0x01672a01 "S;", long * result = 0x02c3fb70)+0x108d4 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 4397]
13 js3250!js_Invoke(struct JSContext * cx = 0x04c5f008, unsigned int argc = 0, unsigned int flags = 2)+0xdcd (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\js\src\jsinterp.c @ 1258]
14 xpc3250!nsXPCWrappedJSClass::CallMethod(class nsXPCWrappedJS * wrapper = 0x0525bc58, unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x01759498, struct nsXPTCMiniVariant * nativeParams = 0x02c3fe84)+0xd17 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp @ 1507]
15 xpc3250!nsXPCWrappedJS::CallMethod(unsigned short methodIndex = 3, class nsXPTMethodInfo * info = 0x01759498, struct nsXPTCMiniVariant * params = 0x02c3fe84)+0x3f (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp @ 519]
16 xpcom_core!PrepareAndDispatch(class nsXPTCStubBase * self = 0x0525bc58, unsigned int methodIndex = 3, unsigned int * args = 0x02c3ff4c, unsigned int * stackBytesToPop = 0x02c3ff3c)+0x337 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 117]
17 xpcom_core!SharedStub(void)+0x16 (CONV: cdecl) [r:\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp @ 147]
18 xpcom_core!nsThread::Main(void * arg = 0x0552a220)+0x8e (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\xpcom\threads\nsthread.cpp @ 118]
19 nspr4!_PR_NativeRunThread(void * arg = 0x051dee30)+0xd9 (FPO: [Non-Fpo]) (CONV: cdecl) [r:\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 436]
1a nspr4!pr_root(void * arg = 0x051dee30)+0x17 (FPO: [Non-Fpo]) (CONV: stdcall) [r:\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 120]
1b MSVCR71D!_threadstartex(void * ptd = 0x051edb08)+0xb6 (FPO: [Non-Fpo]) (CONV: stdcall) [f:\vs70builds\3077\vc\crtbld\crt\src\threadex.c @ 241]
1c kernel32!BaseThreadStart+0x37 (FPO: [Non-Fpo])
Assignee: general → timeless
Status: UNCONFIRMED → ASSIGNED
Attachment #211717 - Flags: review?(brendan)
Flags: testcase-
Attachment #211717 - Flags: review?(mrbkap)
Comment on attachment 211717 [details] [diff] [review]
make assertion catch my error

Sure.

/be
Attachment #211717 - Flags: review?(brendan) → review+
Attachment #211717 - Flags: review?(mrbkap) → review+
Comment on attachment 211717 [details] [diff] [review]
make assertion catch my error

mozilla/js/src/jsapi.c 	3.250
Attachment #211717 - Attachment is obsolete: true
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Comment on attachment 211717 [details] [diff] [review]
make assertion catch my error

Can we put this on the branch?
Attachment #211717 - Flags: approval-branch-1.8.1?(brendan)
Attachment #211717 - Flags: approval-branch-1.8.1?(brendan) → approval1.8.1?
be is this caught in the 1.7 rollup or should it land piecemeal?
Comment on attachment 211717 [details] [diff] [review]
make assertion catch my error

a=dbaron on behalf of drivers, but brendan should be the one to determine whether this lands on its own or as part of a larger landing
Attachment #211717 - Flags: approval1.8.1? → approval1.8.1+
fixed1.8.1 as part of the JS1.7 landing.
Keywords: fixed1.8.1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: