Closed Bug 161532 Opened 22 years ago Closed 15 years ago

switching to/from full screen mode crashes mozilla

Categories

(Core :: XUL, defect)

All
Linux
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: ajschult784, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: crash, testcase)

Attachments

(2 files)

this is with 1.1 branch 20020807 on Alpha-Linux (RH72)
when switching to or from full screen mode via F11, Mozilla sometimes crashes
with the following error in my terminal:

Gdk-ERROR **: BadDrawable (invalid Pixmap or Window parameter)
  serial 42991 error_code 9 request_code 14 minor_code 0

I can't make it happen consistently, but it happens at least one time in 10.  
the URL I have been testing it on is http://www.mozilla.org/start

The crash is with gnome.  If I use blackbox, then half the time the window
disappears going to full screen (the first time) and if that works, then it
always disappears restoring to normal size.  I get these errors in my .xsession
file:

** WARNING **: Task not found in tasklist: 0x12009b460; not destroying
Attached file partiail stacktrace
I'm unable to reproduce this with PC-linux under gnome or blackbox.
updated from CVS (20020809) and it's working fine on Alpha again as well.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → WORKSFORME
I'm getting this again.... :(
Also occuring in bug 162675.  OS=> All
Status: RESOLVED → REOPENED
Hardware: DEC → All
Resolution: WORKSFORME → ---
*** Bug 162675 has been marked as a duplicate of this bug. ***
I no longer see the blackbox behavior that the window simply disappears.  That
seems to have been a blackbox bug that got fixed.  Mozilla now crashes in gnome
and blackbox.
Keywords: crash
I still can't produce this on my PC, but it is running RH73 and has slightly
newer versions of some libraries (gtk, among others)

However, I have noticed that sometimes (approximately same frequency as the
crash), the restored window will actually full screen, but with the standard UI.
 The windowmanager does not consider the window to be "maximized" (the maximize
button is available).  This makes me think that perhaps the bug still exists,
but that a newer gtk/gdk is handling the error better.

Tim: are you using a .mozilla.org build?
Yes, I'm using a mozilla.org nightly build from /pub/mozilla/nightly/latest/

Mozilla 1.1b

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1b) Gecko/20020813


tim@fum:~$ /usr/local/mozilla/run-mozilla.sh /usr/local/mozilla/mozilla-bin
Gdk-ERROR **: BadWindow (invalid Window parameter)
  serial 5567 error_code 3 request_code 15 minor_code 0
tim@fum:~$
tim@fum:~$ /usr/local/mozilla/run-mozilla.sh usr/local/mozilla/mozilla-bin
Gdk-ERROR **: BadWindow (invalid Window parameter)
  serial 12135 error_code 3 request_code 15 minor_code 0


Is there any way to get a backtrace, other than building from source?  I don't
mind building from source, if this is the way to do it.  I was told to get a
talkback enabled build, but these seem to be win32 only.
a talkback build won't help.  The problem is that gdk calls "exit" (note the
"exit" at the top of attachment 94361 [details]) which means that talkback thinks Mozilla
exitted cleanly and does not kick in.

The .mozilla.org is stripped of all symbols, so the stacktrace wouldn't be that
useful.  The RPM build has some symbols, but to the a full stacktrace, you have
to build from source.  To get gdb to catch the crash, you have to set a
breakpoint at "exit".

Since you can reproduce this with a .mozilla.org build (and I can't!) it would
be nice to know when this actually started happening (testing older releases and
nightlies).
I'll leave this running, if anyone wants me to dig out any more info from it. 
I've rarely used gdb in anger, but I'll see what I can do.  This is built from
source tarball from pub/mozilla/nightly/latest/ as of approx 4 hours ago (11:00
GMT).



(gdb) cont
Continuing.
[New Thread 11276 (LWP 22594)]
frame: Text(label)(-1)[value=Back] (0x85a3c08) style: 0x85a3bb4 {}
Wrong parent style context:  style: 0x85a378c {}
should be using:  style: 0x85a33e4 {}

frame: Text(label)(-1)[value=Forward] (0x843cc74) style: 0x843cc20 {}
Wrong parent style context:  style: 0x843ca00 {}
should be using:  style: 0x843c9cc {}

frame: Text(label)(-1)[value=Reload] (0x41c939d4) style: 0x41c93980 {}
Wrong parent style context:  style: 0x41c9370c {}
should be using:  style: 0x843ca00 {}

frame: Text(label)(-1)[value=Stop] (0x41c93d18) style: 0x41c93bcc {}
Wrong parent style context:  style: 0x41c7f820 {}
should be using:  style: 0x41c9370c {}

frame: Text(label)(-1)[value=Print] (0x85b444c) style: 0x85b43f8 {}
Wrong parent style context:  style: 0x85b40d8 {}
should be using:  style: 0x85b3f70 {}

frame: Area(label)(-1) (0x41ca0d68) style: 0x85993d4 {}
Wrong parent style context:  style: 0x41c67484 {}
should be using:  style: 0x85b40d8 {}

frame: Area(label)(-1) (0x41ca0fb0) style: 0x8717e98 {}
Wrong parent style context:  style: 0x871799c {}
should be using:  style: 0x41c67484 {}

frame: Area(label)(-1) (0x41ca11f8) style: 0x8717fe4 {}
Wrong parent style context:  style: 0x871790c {}
should be using:  style: 0x871799c {}

Gdk-ERROR **: BadWindow (invalid Window parameter)
  serial 8552 error_code 3 request_code 15 minor_code 0
[Switching to Thread 1024 (LWP 22534)]

Breakpoint 3, 0x40660dd5 in exit () from /lib/libc.so.6
(gdb) bt
#0  0x40660dd5 in exit () from /lib/libc.so.6
#1  0x4048c3df in gdk_beep () from /usr/lib/libgdk-1.2.so.0
#2  0x405259cd in _XError () from /usr/X11R6/lib/libX11.so.6
#3  0x4052407b in _XReply () from /usr/X11R6/lib/libX11.so.6
#4  0x4051b4d1 in XQueryTree () from /usr/X11R6/lib/libX11.so.6
#5  0x404a9c57 in gdk_window_get_root_origin () from /usr/lib/libgdk-1.2.so.0
#6  0x40c0cd9a in nsWindow::GetWindowPos (this=0x82954a0, x=@0xbfff8c94,
y=@0xbfff8c90) at nsWindow.cpp:361
#7  0x40c0ce5d in nsWindow::WidgetToScreen (this=0x82954a0,
aOldRect=@0xbfff8cc8, aNewRect=@0xbfff8d18) at nsWindow.cpp:393
#8  0x40c11f7a in nsWindow::GetScreenBounds (this=0x82954a0, aRect=@0xbfff8d18)
at nsWindow.cpp:2397
#9  0x40b841d5 in nsXULWindow::GetPositionAndSize (this=0x8284670, x=0xbfff8f2c,
y=0xbfff8f28, cx=0xbfff8f24, cy=0xbfff8f20) at nsXULWindow.cpp:489
#10 0x40b87dab in nsXULWindow::PersistPositionAndSize (this=0x8284670,
aPosition=1, aSize=0, aSizeMode=0) at nsXULWindow.cpp:1235
#11 0x40b83ec5 in nsXULWindow::SetPosition (this=0x8284670, aX=118, aY=0) at
nsXULWindow.cpp:438
#12 0x40b7849f in nsChromeTreeOwner::SetPosition (this=0x834d4b8, x=118, y=0) at
nsChromeTreeOwner.cpp:297
#13 0x40f29275 in GlobalWindowImpl::MoveTo (this=0x82e2750, aXPos=118, aYPos=0)
at nsGlobalWindow.cpp:2515
#14 0x40f265aa in GlobalWindowImpl::SetFullScreen (this=0x82e2750,
aFullScreen=0) at nsGlobalWindow.cpp:1973
#15 0x4027c288 in XPTC_InvokeByIndex () from ./libxpcom.so
#16 0x40829589 in XPCWrappedNative::CallMethod (ccx=@0xbfff96d0,
mode=CALL_SETTER) at xpcwrappednative.cpp:1994
#17 0x4082c706 in XPCWrappedNative::SetAttribute (ccx=@0xbfff96d0) at
xpcprivate.h:1841
#18 0x4083546d in XPC_WN_GetterSetter (cx=0x823e970, obj=0x80f1770, argc=1,
argv=0x87d5fe4, vp=0xbfff9804) at xpcwrappednativejsops.cpp:1290
#19 0x400d4f4d in js_Invoke (cx=0x823e970, argc=1, flags=2) at jsinterp.c:838
#20 0x400d534f in js_InternalInvoke (cx=0x823e970, obj=0x80f1770,
fval=141085320, flags=0, argc=1, argv=0xbfffa230, rval=0xbfffa230) at jsinterp.c:930
#21 0x400f8e03 in js_SetProperty (cx=0x823e970, obj=0x80f1770, id=136009440,
vp=0xbfffa230) at jsobj.c:2623
#22 0x400e22aa in js_Interpret (cx=0x823e970, result=0xbfffa320) at jsinterp.c:2633
#23 0x400d4fd0 in js_Invoke (cx=0x823e970, argc=1, flags=2) at jsinterp.c:855
#24 0x400d534f in js_InternalInvoke (cx=0x823e970, obj=0x868ca18,
fval=141085584, flags=0, argc=1, argv=0xbfffa7d4, rval=0xbfffa4d8) at jsinterp.c:930
#25 0x400a3a7d in JS_CallFunctionValue (cx=0x823e970, obj=0x868ca18,
fval=141085584, argc=1, argv=0xbfffa7d4, rval=0xbfffa4d8) at jsapi.c:3431
#26 0x40f0ebb4 in nsJSContext::CallEventHandler (this=0x8306870,
aTarget=0x868ca18, aHandler=0x868cb90, argc=1, argv=0xbfffa7d4,
aBoolResult=0xbfffa5f4,
    aReverseReturnResult=0) at nsJSEnvironment.cpp:1040
#27 0x40f87804 in nsJSEventListener::HandleEvent (this=0x8642f70,
aEvent=0x85b2918) at nsJSEventListener.cpp:182
#28 0x4148ef24 in nsXBLPrototypeHandler::ExecuteHandler (this=0x87b0ad8,
aReceiver=0x84257f8, aEvent=0x85b2918) at nsXBLPrototypeHandler.cpp:456
#29 0x4148a11e in nsXBLWindowHandler::WalkHandlersInternal (this=0x85308b4,
aEvent=0x85b2918, aEventType=0x8200f70, aHandler=0x87b0a10)
    at nsXBLWindowHandler.cpp:311
#30 0x4148b4d0 in nsXBLWindowKeyHandler::WalkHandlers (this=0x85308b0,
aKeyEvent=0x85b2918, aEventType=0x8200f70) at nsXBLWindowKeyHandler.cpp:181
#31 0x4148b5d2 in nsXBLWindowKeyHandler::KeyPress (this=0x85308b0,
aKeyEvent=0x85b2918) at nsXBLWindowKeyHandler.cpp:198
#32 0x411b0826 in nsEventListenerManager::HandleEvent (this=0x83cbc60,
aPresContext=0x8744c30, aEvent=0xbffff620, aDOMEvent=0xbffff018,
    aCurrentTarget=0x83a3ce4, aFlags=2, aEventStatus=0xbffff330) at
nsEventListenerManager.cpp:1609
#33 0x4140112f in nsXULDocument::HandleDOMEvent (this=0x83a3cb8,
aPresContext=0x8744c30, aEvent=0xbffff620, aDOMEvent=0xbffff018, aFlags=2,
    aEventStatus=0xbffff330) at nsXULDocument.cpp:2616
#34 0x413d9516 in nsXULElement::HandleDOMEvent (this=0x83d3658,
aPresContext=0x8744c30, aEvent=0xbffff620, aDOMEvent=0xbffff018, aFlags=2,
    aEventStatus=0xbffff330) at nsXULElement.cpp:3476

...


(gdb) frame 5
#5  0x404a9c57 in gdk_window_get_root_origin () from /usr/lib/libgdk-1.2.so.0
(gdb) info locals
No symbol table info available.
(gdb) up
#6  0x40c0cd9a in nsWindow::GetWindowPos (this=0x82954a0, x=@0xbfff8c94,
y=@0xbfff8c90) at nsWindow.cpp:361
361                 gdk_window_get_root_origin(mMozArea->window, &xpos, &ypos);
(gdb) info locals
xpos = 0
ypos = 0
this = (nsWindow *) 0x82954a0
(gdb) info nsWindow
Undefined info command: "nsWindow".  Try "help info".
(gdb) p mMozArea
$1 = (GtkWidget *) 0x82c5b40
(gdb) p *mMozArea
$2 = {object = {klass = 0x813bd38, flags = 73676, ref_count = 1, object_data =
0x814c8b0}, private_flags = 16, state = 0 '\0', saved_state = 0 '\0',
  name = 0x82baa98 "gtkmozarea", style = 0x8132fd8, requisition = {width = 0,
height = 0}, allocation = {x = -1, y = -1, width = 1, height = 1},
  window = 0x832a208, parent = 0x82e8530}
(gdb) p *mMozArea.window
$3 = {user_data = 0x82c5b40}
(gdb) p *mMozArea.window.user_data
Attempt to dereference a generic pointer.


Maybe Qt would have been a better choice?  ;-p
-> bryner
Assignee: jaggernaut → bryner
Status: REOPENED → NEW
On Linux Redhat 7.3 with KDE and mozilla 1.1 if you are browsing a website that
have horizontal scroll bar (on a non-maximized window) you press F11 to change
to full screen mode and then press it again to return  last state, it Always
crashes mozilla.
Sometimes one needs to hit F11 a lot to get it to crash.  This is consistent
with actual webpages, however, and is not specific to the testcase.
Keywords: testcase
*** Bug 187622 has been marked as a duplicate of this bug. ***
Blocks: 158361
WFM, 1.7b on Linux.
Assignee: bryner → jag
QA Contact: jrgmorrison → xptoolkit.widgets
Assignee: jag → nobody
WFM, Firefox 3.5.5 on Ubuntu 9.10 (GNOME).
Status: NEW → RESOLVED
Closed: 22 years ago15 years ago
Resolution: --- → WORKSFORME
WFM, 3.0.6 on Debian 5.0 amd64.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: