Closed Bug 291456 Opened 20 years ago Closed 6 years ago

unhandled/unhandable error: NS_ERROR("Can't get globalObject.Object.prototype"); [@ js_FindConstructor]

Categories

(Core :: XPConnect, defect, P5)

x86
Windows XP
defect

Tracking

()

RESOLVED INACTIVE

People

(Reporter: timeless, Unassigned)

Details

(Keywords: assertion, crash)

Crash Data

cvs update. apply patch for JS_RUNTIME_SIZE. build.
set JS_RUNTIME_SIZE=2

\mozilla\dbg-i686-pc-cygwin\dist\bin\xpcshell.exe

###!!! ASSERTION: Can't get globalObject.Object.prototype: 'Error', file
r:/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp, line 196

void
XPCWrappedNativeScope::SetGlobal(XPCCallContext& ccx, JSObject* aGlobal)
...
NS_ERROR("Can't get globalObject.Object.prototype");

XPCWrappedNativeScope*
XPCWrappedNativeScope::GetNewOrUsed(XPCCallContext& ccx, JSObject* aGlobal)
...
        scope->SetGlobal(ccx, aGlobal);
    }
    return scope;

I believe this means the scope being returned is not rooted and will be reaped.

stack for error:
>	xpc3250.dll!XPCWrappedNativeScope::GetNewOrUsed(XPCCallContext & ccx={...},
JSObject * aGlobal=0x00ba5ea0)  Line 128	C++
 	xpc3250.dll!nsXPConnect::InitClasses(JSContext * aJSContext=0x00bab178,
JSObject * aGlobalJSObj=0x00ba5ea0)  Line 435 + 0xd	C++
 	xpc3250.dll!nsXPConnect::InitClassesWithNewWrappedGlobal(JSContext *
aJSContext=0x00bab178, nsISupports * aCOMObj=0x00c25f0c, const nsID &
aIID={...}, int aCallJS_InitStandardClasses=0x00000000,
nsIXPConnectJSObjectHolder * * _retval=0x0012f9a0)  Line 493 + 0x17	C++
 	xpc3250.dll!mozJSComponentLoader::GlobalForLocation(const char *
aLocation=0x00bd07f8, nsIFile * component=0x00000000)  Line 974 + 0x55	C++
 	xpc3250.dll!mozJSComponentLoader::ModuleForLocation(const char *
registryLocation=0x00bd07f8, nsIFile * component=0x00000000)  Line 839 + 0x13	C++
 	xpc3250.dll!mozJSComponentLoader::GetFactory(const nsID & aCID={...}, const
char * aLocation=0x00bd07f8, const char * aType=0x00bcbcf0, nsIFactory * *
_retval=0x0012fb84)  Line 384 + 0xe	C++
 	xpcom_core.dll!nsFactoryEntry::GetFactory(nsIFactory * * aFactory=0x0012fb84,
nsComponentManagerImpl * mgr=0x0038f370)  Line 302 + 0x3a	C++
 	xpcom_core.dll!nsComponentManagerImpl::CreateInstanceByContractID(const char *
aContractID=0x00b9f8e8, nsISupports * aDelegate=0x00000000, const nsID &
aIID={...}, void * * aResult=0x0012fbe4)  Line 1989 + 0x10	C++
 	xpcom_core.dll!nsComponentManagerImpl::GetServiceByContractID(const char *
aContractID=0x00b9f8e8, const nsID & aIID={...}, void * * result=0x0012fc4c) 
Line 2421 + 0x32	C++
 	xpcom_core.dll!CallGetService(const char * aContractID=0x00b9f8e8, const nsID
& aIID={...}, void * * aResult=0x0012fc4c)  Line 93	C++
 	xpcom_core.dll!nsGetServiceByContractIDWithError::operator()(const nsID &
aIID={...}, void * * aInstancePtr=0x0012fc4c)  Line 286 + 0x13	C++
 	xpcom_core.dll!nsCOMPtr_base::assign_from_gs_contractid_with_error(const
nsGetServiceByContractIDWithError & gs={...}, const nsID & iid={...})  Line
141 + 0x10	C++
 	xpcom_core.dll!nsCOMPtr<nsISupports>::nsCOMPtr<nsISupports>(const
nsGetServiceByContractIDWithError & gs={...})  Line 1007	C++
 	xpcom_core.dll!NS_CreateServicesFromCategory(const char * category=0x004ddbc0,
nsISupports * origin=0x00000000, const char * observerTopic=0x004ddbb0)  Line
817	C++
 	xpcom_core.dll!NS_InitXPCOM2_P(nsIServiceManager * * result=0x0012ff40,
nsIFile * binDirectory=0x00000000, nsIDirectoryServiceProvider *
appFileLocationProvider=0x00000000)  Line 683 + 0x11	C++
 	xpcshell.exe!main(int argc=0x00000001, char * * argv=0x00387050, char * *
envp=0x00382f98)  Line 1499 + 0x22	C++
 	xpcshell.exe!mainCRTStartup()  Line 398 + 0x11	C
 	kernel32.dll!_BaseProcessStart@4()  + 0x23	

stack for garbage collection which reaped mGlobalJSObject:
>	js3250.dll!js_NewString(JSContext * cx=0x00bab178, unsigned short *
chars=0x00c26940, unsigned int length=0x0000001b, unsigned int
gcflag=0x00000000)  Line 2463 + 0x12	C
 	js3250.dll!js_NewStringCopyN(JSContext * cx=0x00bab178, const unsigned short *
s=0x0012f36c, unsigned int n=0x0000001b, unsigned int gcflag=0x00000000)  Line
2578 + 0x15	C
 	js3250.dll!js_AtomizeString(JSContext * cx=0x00bab178, JSString *
str=0x0012f360, unsigned int flags=0x00000080)  Line 647 + 0x40	C
 	js3250.dll!js_Atomize(JSContext * cx=0x00bab178, const char *
bytes=0x00d0ee54, unsigned int length=0x0000001b, unsigned int flags=0x00000000)
 Line 717 + 0x16	C
 	js3250.dll!js_FindConstructor(JSContext * cx=0x00bab178, JSObject *
start=0x00ba5ea0, const char * name=0x00d0ee54, long * vp=0x0012f41c)  Line
1964 + 0x1c	C
 	js3250.dll!GetClassPrototype(JSContext * cx=0x00bab178, JSObject *
scope=0x00ba5ea0, const char * name=0x00d0ee54, JSObject * * protop=0x0012f480)
 Line 3625 + 0x15	C
 	js3250.dll!js_NewObject(JSContext * cx=0x00bab178, JSClass * clasp=0x00d12f18,
JSObject * proto=0x00000000, JSObject * parent=0x00ba5ea0)  Line 1864 + 0x17	C
 	js3250.dll!JS_NewObject(JSContext * cx=0x00bab178, JSClass * clasp=0x00d12f18,
JSObject * proto=0x00000000, JSObject * parent=0x00ba5ea0)  Line 2175 + 0x15	C
 	xpc3250.dll!XPCWrappedNativeProto::Init(XPCCallContext & ccx={...}, const
XPCNativeScriptableCreateInfo * scriptableCreateInfo=0x0012f694)  Line 110 +
0x29	C++
 	xpc3250.dll!XPCWrappedNativeProto::GetNewOrUsed(XPCCallContext & ccx={...},
XPCWrappedNativeScope * Scope=0x00c261e8, nsIClassInfo * ClassInfo=0x00c26898,
const XPCNativeScriptableCreateInfo * ScriptableCreateInfo=0x0012f694, int
ForceNoSharing=0x00000000)  Line 222 + 0x23	C++
 	xpc3250.dll!XPCWrappedNative::GetNewOrUsed(XPCCallContext & ccx={...},
nsISupports * Object=0x00c26890, XPCWrappedNativeScope * Scope=0x00c261e8,
XPCNativeInterface * Interface=0x00ba9198, XPCWrappedNative * *
resultWrapper=0x0012f6e4)  Line 359 + 0x1c	C++
 	xpc3250.dll!nsXPCComponents::AttachNewComponentsObject(XPCCallContext &
ccx={...}, XPCWrappedNativeScope * aScope=0x00c261e8, JSObject *
aGlobal=0x00ba5ea0)  Line 2982 + 0x37	C++
 	xpc3250.dll!nsXPConnect::InitClasses(JSContext * aJSContext=0x00bab178,
JSObject * aGlobalJSObj=0x00ba5ea0)  Line 442 + 0x11	C++
 	xpc3250.dll!nsXPConnect::InitClassesWithNewWrappedGlobal(JSContext *
aJSContext=0x00bab178, nsISupports * aCOMObj=0x00c25f0c, const nsID &
aIID={...}, int aCallJS_InitStandardClasses=0x00000000,
nsIXPConnectJSObjectHolder * * _retval=0x0012f9a0)  Line 493 + 0x17	C++
 	xpc3250.dll!mozJSComponentLoader::GlobalForLocation(const char *
aLocation=0x00bd07f8, nsIFile * component=0x00000000)  Line 974 + 0x55	C++
 	xpc3250.dll!mozJSComponentLoader::ModuleForLocation(const char *
registryLocation=0x00bd07f8, nsIFile * component=0x00000000)  Line 839 + 0x13	C++
 	xpc3250.dll!mozJSComponentLoader::GetFactory(const nsID & aCID={...}, const
char * aLocation=0x00bd07f8, const char * aType=0x00bcbcf0, nsIFactory * *
_retval=0x0012fb84)  Line 384 + 0xe	C++
 	xpcom_core.dll!nsFactoryEntry::GetFactory(nsIFactory * * aFactory=0x0012fb84,
nsComponentManagerImpl * mgr=0x0038f370)  Line 302 + 0x3a	C++
 	xpcom_core.dll!nsComponentManagerImpl::CreateInstanceByContractID(const char *
aContractID=0x00b9f8e8, nsISupports * aDelegate=0x00000000, const nsID &
aIID={...}, void * * aResult=0x0012fbe4)  Line 1989 + 0x10	C++
 	xpcom_core.dll!nsComponentManagerImpl::GetServiceByContractID(const char *
aContractID=0x00b9f8e8, const nsID & aIID={...}, void * * result=0x0012fc4c) 
Line 2421 + 0x32	C++
 	xpcom_core.dll!CallGetService(const char * aContractID=0x00b9f8e8, const nsID
& aIID={...}, void * * aResult=0x0012fc4c)  Line 93	C++
 	xpcom_core.dll!nsGetServiceByContractIDWithError::operator()(const nsID &
aIID={...}, void * * aInstancePtr=0x0012fc4c)  Line 286 + 0x13	C++
 	xpcom_core.dll!nsCOMPtr_base::assign_from_gs_contractid_with_error(const
nsGetServiceByContractIDWithError & gs={...}, const nsID & iid={...})  Line
141 + 0x10	C++
 	xpcom_core.dll!nsCOMPtr<nsISupports>::nsCOMPtr<nsISupports>(const
nsGetServiceByContractIDWithError & gs={...})  Line 1007	C++
 	xpcom_core.dll!NS_CreateServicesFromCategory(const char * category=0x004ddbc0,
nsISupports * origin=0x00000000, const char * observerTopic=0x004ddbb0)  Line
817	C++
 	xpcom_core.dll!NS_InitXPCOM2_P(nsIServiceManager * * result=0x0012ff40,
nsIFile * binDirectory=0x00000000, nsIDirectoryServiceProvider *
appFileLocationProvider=0x00000000)  Line 683 + 0x11	C++
 	xpcshell.exe!main(int argc=0x00000001, char * * argv=0x00387050, char * *
envp=0x00382f98)  Line 1499 + 0x22	C++
 	xpcshell.exe!mainCRTStartup()  Line 398 + 0x11	C
 	kernel32.dll!_BaseProcessStart@4()  + 0x23	

Death occurs because scope was converted from a JSObject into a JSString by the
stack above. too bad that scope was the parent in JS_NewObject:
+	(JSString*)parent	0x00ba5ea0 {length=0x0000001b chars=0x00c26940
"XPC_WN_NoMods_Proto_JSClass" }	JSString *

the crash is at:
            start = OBJ_GET_PARENT(cx, obj);
+	(JSString*)obj	0x00ba5ea0 {length=0x0000001b chars=0x00c26940
"XPC_WN_NoMods_Proto_JSClass" }	JSString *

>	js3250.dll!js_FindConstructor(JSContext * cx=0x00bab178, JSObject *
start=0x00ba5ea0, const char * name=0x00d0ee54, long * vp=0x0012f41c)  Line 1972	C
 	js3250.dll!GetClassPrototype(JSContext * cx=0x00bab178, JSObject *
scope=0x00ba5ea0, const char * name=0x00d0ee54, JSObject * * protop=0x0012f480)
 Line 3625 + 0x15	C
 	js3250.dll!js_NewObject(JSContext * cx=0x00bab178, JSClass * clasp=0x00d12f18,
JSObject * proto=0x00000000, JSObject * parent=0x00ba5ea0)  Line 1864 + 0x17	C
 	js3250.dll!JS_NewObject(JSContext * cx=0x00bab178, JSClass * clasp=0x00d12f18,
JSObject * proto=0x00000000, JSObject * parent=0x00ba5ea0)  Line 2175 + 0x15	C
 	xpc3250.dll!XPCWrappedNativeProto::Init(XPCCallContext & ccx={...}, const
XPCNativeScriptableCreateInfo * scriptableCreateInfo=0x0012f694)  Line 110 +
0x29	C++
 	xpc3250.dll!XPCWrappedNativeProto::GetNewOrUsed(XPCCallContext & ccx={...},
XPCWrappedNativeScope * Scope=0x00c261e8, nsIClassInfo * ClassInfo=0x00c26898,
const XPCNativeScriptableCreateInfo * ScriptableCreateInfo=0x0012f694, int
ForceNoSharing=0x00000000)  Line 222 + 0x23	C++
 	xpc3250.dll!XPCWrappedNative::GetNewOrUsed(XPCCallContext & ccx={...},
nsISupports * Object=0x00c26890, XPCWrappedNativeScope * Scope=0x00c261e8,
XPCNativeInterface * Interface=0x00ba9198, XPCWrappedNative * *
resultWrapper=0x0012f6e4)  Line 359 + 0x1c	C++
 	xpc3250.dll!nsXPCComponents::AttachNewComponentsObject(XPCCallContext &
ccx={...}, XPCWrappedNativeScope * aScope=0x00c261e8, JSObject *
aGlobal=0x00ba5ea0)  Line 2982 + 0x37	C++
 	xpc3250.dll!nsXPConnect::InitClasses(JSContext * aJSContext=0x00bab178,
JSObject * aGlobalJSObj=0x00ba5ea0)  Line 442 + 0x11	C++
 	xpc3250.dll!nsXPConnect::InitClassesWithNewWrappedGlobal(JSContext *
aJSContext=0x00bab178, nsISupports * aCOMObj=0x00c25f0c, const nsID &
aIID={...}, int aCallJS_InitStandardClasses=0x00000000,
nsIXPConnectJSObjectHolder * * _retval=0x0012f9a0)  Line 493 + 0x17	C++
 	xpc3250.dll!mozJSComponentLoader::GlobalForLocation(const char *
aLocation=0x00bd07f8, nsIFile * component=0x00000000)  Line 974 + 0x55	C++
 	xpc3250.dll!mozJSComponentLoader::ModuleForLocation(const char *
registryLocation=0x00bd07f8, nsIFile * component=0x00000000)  Line 839 + 0x13	C++
 	xpc3250.dll!mozJSComponentLoader::GetFactory(const nsID & aCID={...}, const
char * aLocation=0x00bd07f8, const char * aType=0x00bcbcf0, nsIFactory * *
_retval=0x0012fb84)  Line 384 + 0xe	C++
 	xpcom_core.dll!nsFactoryEntry::GetFactory(nsIFactory * * aFactory=0x0012fb84,
nsComponentManagerImpl * mgr=0x0038f370)  Line 302 + 0x3a	C++
 	xpcom_core.dll!nsComponentManagerImpl::CreateInstanceByContractID(const char *
aContractID=0x00b9f8e8, nsISupports * aDelegate=0x00000000, const nsID &
aIID={...}, void * * aResult=0x0012fbe4)  Line 1989 + 0x10	C++
 	xpcom_core.dll!nsComponentManagerImpl::GetServiceByContractID(const char *
aContractID=0x00b9f8e8, const nsID & aIID={...}, void * * result=0x0012fc4c) 
Line 2421 + 0x32	C++
 	xpcom_core.dll!CallGetService(const char * aContractID=0x00b9f8e8, const nsID
& aIID={...}, void * * aResult=0x0012fc4c)  Line 93	C++
 	xpcom_core.dll!nsGetServiceByContractIDWithError::operator()(const nsID &
aIID={...}, void * * aInstancePtr=0x0012fc4c)  Line 286 + 0x13	C++
 	xpcom_core.dll!nsCOMPtr_base::assign_from_gs_contractid_with_error(const
nsGetServiceByContractIDWithError & gs={...}, const nsID & iid={...})  Line
141 + 0x10	C++
 	xpcom_core.dll!nsCOMPtr<nsISupports>::nsCOMPtr<nsISupports>(const
nsGetServiceByContractIDWithError & gs={...})  Line 1007	C++
 	xpcom_core.dll!NS_CreateServicesFromCategory(const char * category=0x004ddbc0,
nsISupports * origin=0x00000000, const char * observerTopic=0x004ddbb0)  Line
817	C++
 	xpcom_core.dll!NS_InitXPCOM2_P(nsIServiceManager * * result=0x0012ff40,
nsIFile * binDirectory=0x00000000, nsIDirectoryServiceProvider *
appFileLocationProvider=0x00000000)  Line 683 + 0x11	C++
 	xpcshell.exe!main(int argc=0x00000001, char * * argv=0x00387050, char * *
envp=0x00382f98)  Line 1499 + 0x22	C++
 	xpcshell.exe!mainCRTStartup()  Line 398 + 0x11	C
 	kernel32.dll!_BaseProcessStart@4()  + 0x23	

reproducable? yes.
Summary: unhandled/unhandable error: NS_ERROR("Can't get globalObject.Object.prototype"); → unhandled/unhandable error: NS_ERROR("Can't get globalObject.Object.prototype"); [@ js_FindConstructor]
Status: UNCONFIRMED → NEW
Ever confirmed: true
Priority: -- → P5
Assignee: dbradley → nobody
QA Contact: pschwartau → xpconnect
Crash Signature: [@ js_FindConstructor]
Per policy at https://wiki.mozilla.org/Bug_Triage/Projects/Bug_Handling/Bug_Husbandry#Inactive_Bugs. If this bug is not an enhancement request or a bug not present in a supported release of Firefox, then it may be reopened.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.