Closed
Bug 307451
Opened 19 years ago
Closed 18 years ago
stack overflow on startup
Categories
(Core :: XPConnect, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 423443
People
(Reporter: timeless, Assigned: timeless)
Details
(Keywords: crash)
Attachments
(1 file)
|
1.96 KB,
patch
|
Details | Diff | Splinter Review |
i probably have various changes throughout my tree, but this is probably an
almost reachable path that we should protect
js3250.dll!js_LookupPropertyWithFlags(JSContext * cx=0x00bfe268,
JSObject * obj=0x03981dc0, long id=12865976, unsigned int flags=0, JSObject * *
objp=0x00033110, JSProperty * * propp=0x00033100) Line 2509 + 0x40 C
js3250.dll!js_LookupProperty(JSContext * cx=0x00bfe268, JSObject *
obj=0x03981dc0, long id=12865976, JSObject * * objp=0x00033110, JSProperty * *
propp=0x00033100) Line 2484 + 0x1b C
js3250.dll!js_GetProperty(JSContext * cx=0x00bfe268, JSObject *
obj=0x03981dc0, long id=12865976, long * vp=0x00033a24) Line 2769 + 0x19
C
js3250.dll!js_Interpret(JSContext * cx=0x00bfe268, unsigned char *
pc=0x0396a69b, long * result=0x00033b74) Line 5199 + 0x528 C
js3250.dll!js_Invoke(JSContext * cx=0x00bfe268, unsigned int argc=1,
unsigned int flags=2) Line 1183 + 0x13 C
js3250.dll!js_InternalInvoke(JSContext * cx=0x00bfe268, JSObject *
obj=0x0394ee08, long fval=60091360, unsigned int flags=0, unsigned int argc=1,
long * argv=0x00033c84, long * rval=0x00033cb8) Line 1260 + 0x14 C
js3250.dll!JS_CallFunctionValue(JSContext * cx=0x00bfe268, JSObject *
obj=0x0394ee08, long fval=60091360, unsigned int argc=1, long *
argv=0x00033c84, long * rval=0x00033cb8) Line 4048 + 0x1f C
xpc3250.dll!nsXPCWrappedJSClass::CallQueryInterfaceOnJSObject
(XPCCallContext & ccx={...}, JSObject * jsobj=0x0394ee08, const nsID & aIID=
{...}) Line 373 + 0x1c C++
xpc3250.dll!nsXPCWrappedJSClass::GetRootJSObject(XPCCallContext & ccx=
{...}, JSObject * aJSObj=0x0394ee08) Line 718 + 0x16 C++
xpc3250.dll!nsXPCWrappedJS::GetUsedOnly(XPCCallContext & ccx={...},
JSObject * aJSObj=0x0394ee08, const nsID & aIID={...}, nsISupports *
aOuter=0x00000000, nsXPCWrappedJS * * wrapperResult=0x00033d50) Line 342 + 0x10
C++
xpc3250.dll!XPCConvert::JSObject2NativeInterface(XPCCallContext & ccx=
{...}, void * * dest=0x00033e38, JSObject * src=0x0394ee08, const nsID *
iid=0x015bea20, nsISupports * aOuter=0x00000000, int createNew=0, unsigned int
* pErr=0x00033d8c) Line 1192 + 0x19 C++
xpc3250.dll!nsXPConnect::GetNativeOfJSObject(JSContext *
aJSContext=0x00bfe268, JSObject * aJSObj=0x0394ee08, const nsID & aIID={...},
void * * result=0x00033e38) Line 1377 + 0x1d C++
caps.dll!nsScriptSecurityManager::CheckObjectAccess(JSContext *
cx=0x00bfe268, JSObject * obj=0x0394ee08, long id=12686708, JSAccessMode
mode=JSACC_PROTO, long * vp=0x000348a4) Line 465 + 0x3b C++
js3250.dll!js_CheckAccess(JSContext * cx=0x00bfe268, JSObject *
obj=0x0394ee08, long id=12648656, JSAccessMode mode=JSACC_PROTO, long *
vp=0x000348a4, unsigned int * attrsp=0x00033ee8) Line 3482 + 0x4c C
js3250.dll!obj_getSlot(JSContext * cx=0x00bfe268, JSObject *
obj=0x0394ee08, long id=1, long * vp=0x000348a4) Line 156 + 0x23 C
js3250.dll!js_GetProperty(JSContext * cx=0x00bfe268, JSObject *
obj=0x0394ee08, long id=12648656, long * vp=0x000348a4) Line 2842 + 0xf8
C
js3250.dll!js_Interpret(JSContext * cx=0x00bfe268, unsigned char *
pc=0x0396a6e1, long * result=0x000349f4) Line 3285 + 0x62e C
js3250.dll!js_Invoke(JSContext * cx=0x00bfe268, unsigned int argc=1,
unsigned int flags=2) Line 1183 + 0x13 C
js3250.dll!js_InternalInvoke(JSContext * cx=0x00bfe268, JSObject *
obj=0x0394ee08, long fval=60091360, unsigned int flags=0, unsigned int argc=1,
long * argv=0x00034b04, long * rval=0x00034b38) Line 1260 + 0x14 C
js3250.dll!JS_CallFunctionValue(JSContext * cx=0x00bfe268, JSObject *
obj=0x0394ee08, long fval=60091360, unsigned int argc=1, long *
argv=0x00034b04, long * rval=0x00034b38) Line 4048 + 0x1f C
xpc3250.dll!nsXPCWrappedJSClass::CallQueryInterfaceOnJSObject
(XPCCallContext & ccx={...}, JSObject * jsobj=0x0394ee08, const nsID & aIID=
{...}) Line 373 + 0x1c C++
xpc3250.dll!nsXPCWrappedJSClass::GetRootJSObject(XPCCallContext & ccx=
{...}, JSObject * aJSObj=0x0394ee08) Line 718 + 0x16 C++
xpc3250.dll!nsXPCWrappedJS::GetUsedOnly(XPCCallContext & ccx={...},
JSObject * aJSObj=0x0394ee08, const nsID & aIID={...}, nsISupports *
aOuter=0x00000000, nsXPCWrappedJS * * wrapperResult=0x00034bd0) Line 342 + 0x10
C++
xpc3250.dll!XPCConvert::JSObject2NativeInterface(XPCCallContext & ccx=
{...}, void * * dest=0x00034cb8, JSObject * src=0x0394ee08, const nsID *
iid=0x015bea20, nsISupports * aOuter=0x00000000, int createNew=0, unsigned int
* pErr=0x00034c0c) Line 1192 + 0x19 C++
xpc3250.dll!nsXPConnect::GetNativeOfJSObject(JSContext *
aJSContext=0x00bfe268, JSObject * aJSObj=0x0394ee08, const nsID & aIID={...},
void * * result=0x00034cb8) Line 1377 + 0x1d C++
caps.dll!nsScriptSecurityManager::CheckObjectAccess(JSContext *
cx=0x00bfe268, JSObject * obj=0x0394ee08, long id=12686708, JSAccessMode
mode=JSACC_PROTO, long * vp=0x00035724) Line 465 + 0x3b C++
...
Comment 1•19 years ago
|
||
If js_Interpret is on the stack, then there are several limits on stack use already in effect. If they didn't help, why not? We use a generous 500K or so stack limit now. If your app is not using that, this is your bug. /be
in case people are wondering: + (*((*((*cx).fp)).script)).filename 0x03962309 "file:///R:/mozilla/all-i686-pc- cygwin/dist/bin/components/calEvent.js" const char * is the thing that's in at least the top 5 js frames
i set a breakpoint at JS_SetThreadStackLimit(JSContext *, unsigned long) condition: (no condition) hit count: break always (currently 0) per http://lxr.mozilla.org/seamonkey/ident?i=JS_SetThreadStackLimit it's only used in dom, not xpconnect here's the bottom of the stack: > js3250.dll!js_Invoke(JSContext * cx=0x00bfe268, unsigned int argc=0, unsigned int flags=2) Line 846 C js3250.dll!js_InternalInvoke(JSContext * cx=0x00bfe268, JSObject * obj=0x00c19cb8, long fval=12689864, unsigned int flags=0, unsigned int argc=0, long * argv=0x00000000, long * rval=0x0012f84c) Line 1260 + 0x14 C js3250.dll!js_InternalGetOrSet(JSContext * cx=0x00bfe268, JSObject * obj=0x00c19cb8, long id=12574584, long fval=12689864, JSAccessMode mode=JSACC_READ, unsigned int argc=0, long * argv=0x00000000, long * rval=0x0012f84c) Line 1303 + 0x1f C js3250.dll!js_GetProperty(JSContext * cx=0x00bfe268, JSObject * obj=0x00c19cb8, long id=12574584, long * vp=0x0012f84c) Line 2842 + 0x30 C js3250.dll!js_Interpret(JSContext * cx=0x00bfe268, unsigned char * pc=0x00c570d8, long * result=0x0012f8c4) Line 3285 + 0x62e C js3250.dll!js_Execute(JSContext * cx=0x00bfe268, JSObject * chain=0x00c19bd8, JSScript * script=0x00c57090, JSStackFrame * down=0x00000000, unsigned int flags=0, long * result=0x0012f9b0) Line 1393 + 0x13 C js3250.dll!JS_ExecuteScript(JSContext * cx=0x00bfe268, JSObject * obj=0x00c19bd8, JSScript * script=0x00c57090, long * rval=0x0012f9b0) Line 3874 + 0x19 C xpc3250.dll!mozJSComponentLoader::GlobalForLocation(const char * aLocation=0x00bae430, nsIFile * component=0x00b78be0) Line 944 + 0x1e C++ xpc3250.dll!mozJSComponentLoader::ModuleForLocation(const char * registryLocation=0x00bae430, nsIFile * component=0x00b78be0) Line 708 + 0x10 C++ xpc3250.dll!mozJSComponentLoader::AttemptRegistration(nsIFile * component=0x00b78be0, int deferred=0) Line 544 + 0x18 C++ xpc3250.dll!mozJSComponentLoader::AutoRegisterComponent(int when=0, nsIFile * component=0x00b78be0, int * registered=0x0012fce0) Line 470 + 0xe C++ xpc3250.dll!mozJSComponentLoader::RegisterComponentsInDir(int when=0, nsIFile * dir=0x00b834f0) Line 378 + 0x18 C++ xpc3250.dll!mozJSComponentLoader::AutoRegisterComponents(int when=0, nsIFile * aDirectory=0x00b834f0) Line 335 C++ xpcom_core.dll!nsComponentManagerImpl::AutoRegisterNonNativeComponents (nsIFile * spec=0x00b834f0) Line 3267 + 0x2f C++ xpcom_core.dll!nsComponentManagerImpl::AutoRegisterImpl(int when=0, nsIFile * inDirSpec=0x00000000, int fileIsCompDir=1) Line 3237 + 0x14 C++ xpcom_core.dll!nsComponentManagerImpl::AutoRegister(nsIFile * aSpec=0x00000000) Line 3411 + 0x13 C++ xpcom_core.dll!NS_InitXPCOM3_P(nsIServiceManager * * result=0x00000000, nsIFile * binDirectory=0x00000000, nsIDirectoryServiceProvider * appFileLocationProvider=0x00000000, const nsStaticModuleInfo * staticComponents=0x00000000, unsigned int componentCount=0) Line 607 C++ seamonkey.exe!main(int argc=1, char * * argv=0x00349160) Line 1686 + 0x10 C++ seamonkey.exe!mainCRTStartup() Line 398 + 0x11 C kernel32.dll!_BaseProcessStart@4() + 0x23
Comment 5•19 years ago
|
||
This is xpconnect, not jseng. /be
Status: UNCONFIRMED → NEW
Component: JavaScript Engine → XPConnect
Ever confirmed: true
Updated•19 years ago
|
Assignee: general → dbradley
QA Contact: general → pschwartau
this also adds reporting which i needed to track down another problem and has some other changes, each change could be split into its own bug if requested...
Assignee: dbradley → timeless
Status: NEW → ASSIGNED
Attachment #195265 -
Flags: superreview?(brendan)
Attachment #195265 -
Flags: review?(shaver)
Comment 7•19 years ago
|
||
Comment on attachment 195265 [details] [diff] [review] draft to add stack limits for componentloader Not going to get to this soon, so clearing review flag. You can re-request, and I won't mind, but don't expect to get a review this quarter unless you get lucky. (Automatable test cases have been known to improve one's luck.)
Attachment #195265 -
Flags: review?(shaver)
Attachment #195265 -
Flags: review?(dbradley)
*** This bug has been marked as a duplicate of 342854 ***
Status: ASSIGNED → RESOLVED
Closed: 18 years ago
Resolution: --- → DUPLICATE
Attachment #195265 -
Flags: superreview?(brendan)
Attachment #195265 -
Flags: review?(dbradley)
You need to log in
before you can comment on or make changes to this bug.
Description
•