Closed Bug 297639 Opened 20 years ago Closed 16 years ago

"XPConnect is being called on a scope without a 'Components' property!" in window closed from onblur

Categories

(Core :: XPConnect, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: chpe, Unassigned)

References

()

Details

(Keywords: assertion)

(Not sure where this really belongs; could be xpconnect or wherever
nsGlobalWindow bugs go to...)

firefox trunk debug build from 2005-06-13. Fastback is not enabled.

Steps to reproduce:
0) Load the testcase
1) Click the "Test case for bug 116256" link
2) In the popup window, focus the location entry

Now the window closes, and I get this on terminal (after the assertion failure
from bug 297637):
###!!! ASSERTION: 
XPConnect is being called on a scope without a 'Components' property!

This is pretty much always bad. It usually means that native code is
making a callback to an interface implemented in JavaScript, but the
document where the JS object was created has already been cleared and the
global properties of that document's window are *gone*. Generally this
indicates a problem that should be addressed in the design and use of the
callback code.
: 'Error', file
/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp,
line 565
Break: at file
/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp,
line 565

Program received signal SIGTRAP, Trace/breakpoint trap.
0xb7ea7c5a in nsDebugImpl::Break (this=0x81819a0, aFile=0xb6f45d00
"/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp",
aLine=565)
    at /opt/source/firefox-trunk/mozilla/xpcom/base/nsDebugImpl.cpp:357
357           DebugBreak();
(gdb) where
#0  0xb7ea7c5a in nsDebugImpl::Break (this=0x81819a0, aFile=0xb6f45d00
"/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp",
aLine=565)
    at /opt/source/firefox-trunk/mozilla/xpcom/base/nsDebugImpl.cpp:357
#1  0xb7ea7a9f in nsDebugImpl::Assertion (this=0x81819a0, 
    aStr=0xb6f45ee0 "\nXPConnect is being called on a scope without a
'Components' property!\n\nThis is pretty much always bad. It usually means that
native code is\nmaking a callback to an interface implemented in JavaScript"...,
aExpr=0xb6f45da5 "Error", 
    aFile=0xb6f45d00
"/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp",
aLine=565)
    at /opt/source/firefox-trunk/mozilla/xpcom/base/nsDebugImpl.cpp:294
#2  0xb7e1a58c in nsDebug::Assertion (
    aStr=0xb6f45ee0 "\nXPConnect is being called on a scope without a
'Components' property!\n\nThis is pretty much always bad. It usually means that
native code is\nmaking a callback to an interface implemented in JavaScript"...,
aExpr=0xb6f45da5 "Error", 
    aFile=0xb6f45d00
"/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp",
aLine=565) at nsDebug.cpp:108
#3  0xb6f2ffc9 in DEBUG_CheckForComponentsInScope (ccx=@0xbfffd7d0,
obj=0x8546088, OKIfNotInitialized=0)
    at
/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp:565
#4  0xb6f300b7 in XPCWrappedNativeScope::FindInJSObjectScope (ccx=@0xbfffd7d0,
obj=0x8546088, OKIfNotInitialized=0)
    at
/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativescope.cpp:607
#5  0xb6f25651 in xpc_CloneJSFunction (ccx=@0xbfffd7d0, funobj=0x837f850,
parent=0x8546078)
    at
/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativeinfo.cpp:59
#6  0xb6f29488 in DefinePropertyIfFound (ccx=@0xbfffd7d0, obj=0x8546078,
idval=137772004, set=0x831f568, iface=0x836cf08, member=0x836d04c, scope=0x8b2a658, 
    reflectToStringAndToSource=1, wrapperToReflectInterfaceNames=0x0,
wrapperToReflectDoubleWrap=0x0, scriptableInfo=0x8b39218, propFlags=1, resolved=0x0)
    at
/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:450
#7  0xb6f2d04b in XPC_WN_ModsAllowed_Proto_Resolve (cx=0x8736510, obj=0x8546078,
idval=137772004)
    at
/opt/source/firefox-trunk/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp:1474
#8  0xb7f7d06f in js_LookupPropertyWithFlags (cx=0x8736510, obj=0x8546078,
id=136669688, flags=5, objp=0xbfffd9fc, propp=0xbfffd9f8)
    at /opt/source/firefox-trunk/mozilla/js/src/jsobj.c:2592
#9  0xb7f7ca13 in js_LookupProperty (cx=0x8736510, obj=0x8546088, id=136669688,
objp=0xbfffd9fc, propp=0xbfffd9f8) at
/opt/source/firefox-trunk/mozilla/js/src/jsobj.c:2450
#10 0xb7f7d94b in js_GetProperty (cx=0x8736510, obj=0x8546088, id=136669688,
vp=0xbfffdff0) at /opt/source/firefox-trunk/mozilla/js/src/jsobj.c:2735
#11 0xb7f63e63 in js_Interpret (cx=0x8736510, pc=0x89e1b3b "5",
result=0xbfffe15c) at /opt/source/firefox-trunk/mozilla/js/src/jsinterp.c:3295
#12 0xb7f55f70 in js_Invoke (cx=0x8736510, argc=0, flags=0) at
/opt/source/firefox-trunk/mozilla/js/src/jsinterp.c:1198
#13 0xb7f65f0a in js_Interpret (cx=0x8736510, pc=0x89dd721 ":",
result=0xbfffe93c) at /opt/source/firefox-trunk/mozilla/js/src/jsinterp.c:3468
#14 0xb7f55f70 in js_Invoke (cx=0x8736510, argc=3, flags=2) at
/opt/source/firefox-trunk/mozilla/js/src/jsinterp.c:1198
#15 0xb7f5634c in js_InternalInvoke (cx=0x8736510, obj=0x870a320,
fval=139742368, flags=0, argc=3, argv=0x8ae6f48, rval=0xbfffebac)
    at /opt/source/firefox-trunk/mozilla/js/src/jsinterp.c:1275
#16 0xb7f202af in JS_CallFunctionValue (cx=0x8736510, obj=0x870a320,
fval=139742368, argc=3, argv=0x8ae6f48, rval=0xbfffebac)
    at /opt/source/firefox-trunk/mozilla/js/src/jsapi.c:3861
#17 0xb59e7393 in nsJSContext::CallEventHandler (this=0x8736460,
aTarget=0x870a320, aHandler=0x8544ca0, argc=3, argv=0x8ae6f48, rval=0xbfffebac)
    at /opt/source/firefox-trunk/mozilla/dom/src/base/nsJSEnvironment.cpp:1414
#18 0xb59fecb7 in nsGlobalWindow::RunTimeout (this=0x8736368,
aTimeout=0x8a4fcb8) at
/opt/source/firefox-trunk/mozilla/dom/src/base/nsGlobalWindow.cpp:5244
#19 0xb59ff7ab in nsGlobalWindow::TimerCallback (aTimer=0x8a4fd40,
aClosure=0x8a4fcb8) at
/opt/source/firefox-trunk/mozilla/dom/src/base/nsGlobalWindow.cpp:5606
#20 0xb7e9c8f8 in nsTimerImpl::Fire (this=0x8a4fd40) at
/opt/source/firefox-trunk/mozilla/xpcom/threads/nsTimerImpl.cpp:394
#21 0xb7e9cafa in handleTimerEvent (event=0x8a43e20) at
/opt/source/firefox-trunk/mozilla/xpcom/threads/nsTimerImpl.cpp:459
#22 0xb7e946cf in PL_HandleEvent (self=0x8a43e20) at
/opt/source/firefox-trunk/mozilla/xpcom/threads/plevent.c:698
#23 0xb7e94584 in PL_ProcessPendingEvents (self=0x8118180) at
/opt/source/firefox-trunk/mozilla/xpcom/threads/plevent.c:633
#24 0xb7e979e2 in nsEventQueueImpl::ProcessPendingEvents (this=0x8181c60) at
/opt/source/firefox-trunk/mozilla/xpcom/threads/nsEventQueue.cpp:417
#25 0xb5cfaa14 in event_processor_callback (source=0x85c3430, condition=G_IO_IN,
data=0x8181c60) at
/opt/source/firefox-trunk/mozilla/widget/src/gtk2/nsAppShell.cpp:67
#26 0xb7909eb1 in g_vasprintf () from /usr/lib/libglib-2.0.so.0
#27 0xb78e6d0f in g_main_depth () from /usr/lib/libglib-2.0.so.0
#28 0xb78e7cb5 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#29 0xb78e7fd7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#30 0xb78e851e in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#31 0xb7b7f10f in IA__gtk_main () at gtkmain.c:963
#32 0xb5cfb0ba in nsAppShell::Run (this=0x8217cd8) at
/opt/source/firefox-trunk/mozilla/widget/src/gtk2/nsAppShell.cpp:139
#33 0xb5c50c12 in nsAppStartup::Run (this=0x82177c8) at
/opt/source/firefox-trunk/mozilla/toolkit/components/startup/src/nsAppStartup.cpp:144
#34 0x080573be in XRE_main (argc=1, argv=0xbffff764, aAppData=0x8072400) at
/opt/source/firefox-trunk/mozilla/toolkit/xre/nsAppRunner.cpp:2122
#35 0x0804ff6c in main (argc=1, argv=0xbffff764) at
/opt/source/firefox-trunk/mozilla/browser/app/nsBrowserApp.cpp:61
Component: General → XPConnect
Product: Firefox → Core
Keywords: assertion
I get a totally different assertion trying to reproduce this bug:

NTDLL! 7c901230()
nsDebugImpl::Assertion(nsDebugImpl * const 0x002a8318, const char * 0x01c0c498, const char * 0x01c0c488, const char * 0x01c0c450, int 0x000014a6) line 266
NSGlue_Assertion(const char * 0x01c0c450, int 0x000014a6) line 111
nsDocument::UnblockOnload(int 0x00000001) line 5287
nsDocument::EndLoad() line 2371
nsHTMLDocument::EndLoad() line 1028
nsHTMLDocument::DocumentWriteTerminationFunc(nsISupports * 0x0473ce88) line 981
nsJSContext::ScriptEvaluated(int 0x00000001) line 2054 + 17 bytes
nsJSContext::EvaluateString(const nsAString_internal & {...}, void * 0x040882e0, nsIPrincipal * 0x03fac0d0, const char * 0x0012efd0, unsigned int 0x00000001, const char * 0x00000000, nsAString_internal * 0x0012f018, int * 0x0012efb4) line 1114
nsJSThunk::EvaluateScript(nsIChannel * 0x041bbca8) line 285 + 90 bytes
nsJSChannel::InternalOpen(int 0x00000001, nsIStreamListener * 0x041bbef8, nsISupports * 0x00000000, nsIInputStream * * 0x00000000) line 538 + 30 bytes
nsJSChannel::AsyncOpen(nsJSChannel * const 0x044ab4b0, nsIStreamListener * 0x041bbef8, nsISupports * 0x00000000) line 510
nsURILoader::OpenURI(nsURILoader * const 0x01ef8bd8, nsIChannel * 0x044ab4b0, int 0x00000001, nsIInterfaceRequestor * 0x0403ddb8) line 881 + 23 bytes
nsDocShell::DoChannelLoad(nsIChannel * 0x044ab4b0, nsIURILoader * 0x01ef8bd8) line 7059 + 63 bytes
nsDocShell::DoURILoad(nsIURI * 0x04044b08, nsIURI * 0x045b9938, int 0x00000001, nsISupports * 0x03fac0d0, const char * 0x04044d68, nsIInputStream * 0x00000000, nsIInputStream * 0x00000000, int 0x00000001, nsIDocShell * * 0x00000000, nsIRequest * * 0x0012f4e0) line 6911 + 35 bytes
nsDocShell::InternalLoad(nsDocShell * const 0x0403de38, nsIURI * 0x04044b08, nsIURI * 0x045b9938, nsISupports * 0x00000000, unsigned int 0x00000001, const unsigned short * 0x0012f64c, const char * 0x04044d68, nsIInputStream * 0x00000000, nsIInputStream * 0x00000000, unsigned int 0x00200001, nsISHEntry * 0x00000000, int 0x00000001, nsIDocShell * * 0x00000000, nsIRequest * * ...) lin
nsWebShell::OnLinkClickSync(nsWebShell * const 0x0403df54, nsIContent * 0x047018d0, nsLinkVerb eLinkVerb_Replace, nsIURI * 0x04044b08, const unsigned short * 0x0475ed40, nsIInputStream * 0x00000000, nsIInputStream * 0x00000000, nsIDocShell * * 0x00000000, nsIRequest * * 0x00000000) line 737 + 99 bytes
OnLinkClickEvent::HandleEvent() line 531
HandlePLEvent(PLEvent * 0x04044cd8) line 547
PL_HandleEvent(PLEvent * 0x04044cd8) line 688 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00a602e8) line 623 + 9 bytes
nsEventQueueImpl::ProcessPendingEvents(nsEventQueueImpl * const 0x00a60290) line 419 + 12 bytes
nsWindow::DispatchPendingEvents() line 4135
nsWindow::ProcessMessage(unsigned int 0x00000202, unsigned int 0x00000000, long 0x0115003c, long * 0x0012fc8c) line 4549
nsWindow::WindowProc(HWND__ * 0x000a061e, unsigned int 0x00000202, unsigned int 0x00000000, long 0x0115003c) line 1353 + 27 bytes
USER32! 77d48734()
USER32! 77d48816()
USER32! 77d489cd()
USER32! 77d48a10()
nsAppShell::Run(nsAppShell * const 0x01ec2a80) line 135
nsAppStartup::Run(nsAppStartup * const 0x01ec2698) line 208
main1(int 0x00000002, char * * 0x002a2638, nsISupports * 0x00a2ffd8) line 1248 + 32 bytes
main(int 0x00000002, char * * 0x002a2638) line 1736 + 37 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! 7c816d4f()
Comment 1 is covered by another bug; it's assigned to mrbkap.
Hm.  That suggests this bug is WORKSFORME now.
Assignee: nobody → dbradley
QA Contact: general → xpconnect
Assignee: dbradley → nobody
WFM, reopen if you still see this on trunk.
Jesse, you forgot to close this bug, right? Will do so now.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.