#11474: Dragging wxAuiNotebook tab out causes crash

0 views
Skip to first unread message

wxTrac

unread,
Nov 23, 2009, 10:50:27 PM11/23/09
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/11474>

#11474: Dragging wxAuiNotebook tab out causes crash
---------------------+------------------------------------------------------
Reporter: net147 | Owner:
Type: defect | Status: new
Priority: blocker | Milestone: 2.8.11
Component: wxAui | Version: 2.8.10
Keywords: | Blockedby:
Patch: 0 | Blocking:
---------------------+------------------------------------------------------
On wxGTK 2.8.10 debug build, dragging a tab out of wxAuiNotebook into a
new dock area causes an assertion failure:
{{{
./src/gtk/frame.cpp(330): assert '(m_wxwindows != NULL)' failed in
GtkOnSize(): invalid frame
}}}

In release build using KWin this causes a crash with the error:
{{{
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 26478 error_code 3 request_code 15 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error()
function.)
}}}

Using the --sync option it doesn't crash.
Without the --sync option it crashes.


--
Ticket URL: <http://trac.wxwidgets.org/ticket/11474>

wxTrac

unread,
Feb 18, 2010, 11:03:10 AM2/18/10
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/11474#comment:1>

#11474: Dragging wxAuiNotebook tab out causes crash
---------------------+------------------------------------------------------
Reporter: net147 | Owner:

Type: defect | Status: confirmed


Priority: blocker | Milestone: 2.8.11
Component: wxAui | Version: 2.8.10
Keywords: | Blockedby:
Patch: 0 | Blocking:
---------------------+------------------------------------------------------

Changes (by cdron77):

* cc: cdron77@… (added)
* status: new => confirmed


Comment:

I get the same crash error, but without the assertion. I also use Kwin,
but, as far as I remember the bug appears also under Gnome using Compiz as
a composite manager. Without a compositing manager the problem disappears,
and using the --sync flag it is much more stable (even though the program
is slower), but occasionally it occurs anyway. I got the backtrace below
with my application, but the bug can also be reproduced with the auidemo
sample app. Simply run the application and detach a pane, then reattach it
somewhere, and retry until the bug manifests.

I'm using Linux Fedora 12 x86_64 with KDE 4.3.5, wxGTK 2.8.10 (but I've
experienced it also on different 2.8 releases and different Linux
distributions)

The gdb backtrace:

gdb ./maya
GNU gdb (GDB) Fedora (7.0.1-31.fc12)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from
/home/davide/Documenti/Lavoro/Codice/Maya/build/maya...done.
(gdb) r
Starting program: /home/davide/Documenti/Lavoro/Codice/Maya/build/maya
[Thread debugging using libthread_db enabled]

Gdk-ERROR **: The program 'maya' received an X Window System error.
This probably reflects a bug in the program.


The error was 'BadWindow (invalid Window parameter)'.

(Details: serial 82811 error_code 3 request_code 15 minor_code 0)


(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error()
function.)

aborting...

Program received signal SIGABRT, Aborted.
0x0000003c1f4326c5 in raise (sig=<value optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
Missing separate debuginfos, use: debuginfo-install
GConf2-2.28.0-4.fc12.x86_64 ORBit2-2.14.17-3.fc12.x86_64
cairo-1.8.8-3.fc12.x86_64 dbus-libs-1.2.16-9.fc12.x86_64
gamin-0.1.10-5.fc12.x86_64 gtk2-engines-2.18.4-4.fc12.x86_64
gvfs-1.4.3-4.fc12.x86_64 keyutils-libs-1.2-6.fc12.x86_64
krb5-libs-1.7-18.fc12.x86_64 libICE-1.0.6-1.fc12.x86_64
libX11-1.3-1.fc12.x86_64 libXau-1.0.5-1.fc12.x86_64
libXcomposite-0.4.1-2.fc12.x86_64 libXcursor-1.1.10-1.fc12.x86_64
libXdamage-1.1.2-1.fc12.x86_64 libXext-1.1-2.fc12.x86_64
libXfixes-4.0.4-1.fc12.x86_64 libXi-1.3-2.fc12.x86_64
libXrandr-1.3.0-3.fc12.x86_64 libXrender-0.9.5-1.fc12.x86_64
libart_lgpl-2.3.20-5.fc12.x86_64 libcap-ng-0.6.2-3.fc12.x86_64
libcom_err-1.41.9-5.fc12.x86_64 libgnomecanvas-2.26.0-2.fc12.x86_64
libgnomeprint22-2.18.6-3.fc12.x86_64
libgnomeprintui22-2.18.4-2.fc12.x86_64 libselinux-2.0.90-3.fc12.x86_64
libudev-145-15.fc12.x86_64 libuuid-2.16.2-5.fc12.x86_64
libxcb-1.5-1.fc12.x86_64 libxml2-2.7.6-1.fc12.x86_64 mesa-
libGLU-7.7-3.fc12.x86_64 openssl-1.0.0-0.13.beta4.fc12.x86_64
pixman-0.16.6-1.fc12.x86_64
(gdb) where
#0 0x0000003c1f4326c5 in raise (sig=<value optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x0000003c1f433ea5 in abort () at abort.c:92
#2 0x0000003565c4340a in IA__g_logv (log_domain=<value optimized out>,
log_level=<value optimized out>,
format=<value optimized out>, args1=0x7fffffffd4f0) at gmessages.c:549
#3 0x0000003565c434a3 in IA__g_log (log_domain=<value optimized out>,
log_level=<value optimized out>,
format=<value optimized out>) at gmessages.c:569
#4 0x000000363f067c56 in gdk_x_error (display=<value optimized out>,
error=<value optimized out>) at gdkmain-x11.c:466
#5 0x00000038e4c46ad4 in _XError () from /usr/lib64/libX11.so.6
#6 0x00000038e4c4d616 in _XReply () from /usr/lib64/libX11.so.6
#7 0x00000038e4c3b57d in XQueryTree () from /usr/lib64/libX11.so.6
#8 0x00000036401eec2a in wxGetTopmostWindowX11 (this=<value optimized
out>, alpha=<value optimized out>)
at src/gtk/toplevel.cpp:1455
#9 wxTopLevelWindowGTK::SetTransparent (this=<value optimized out>,
alpha=<value optimized out>) at src/gtk/toplevel.cpp:1476
#10 0x0000003641829d4f in wxAuiManager::HideHint (this=0xa64840) at
src/aui/framemanager.cpp:3291
#11 0x0000003641836742 in wxAuiManager::OnFloatingPaneMoved
(this=0xa64840, wnd=<value optimized out>, dir=<value optimized out>)
at src/aui/framemanager.cpp:3636
#12 0x0000003be02f2070 in wxEvtHandler::ProcessEventIfMatches
(entry=<value optimized out>, handler=<value optimized out>, event=
...) at src/common/event.cpp:1231
#13 0x0000003be02f3034 in wxEventHashTable::HandleEvent (this=<value
optimized out>, event=..., self=0xe65e00)
at src/common/event.cpp:906
#14 0x0000003be02f3117 in wxEvtHandler::ProcessEvent (this=0xe65e00,
event=...) at src/common/event.cpp:1293
#15 0x0000003be02f30a0 in wxEvtHandler::ProcessEvent (this=0xe66170,
event=...) at src/common/event.cpp:1300
#16 0x000000364026e989 in wxAppBase::SendIdleEvents (this=0x974c20,
win=0xe65e00, event=...) at src/common/appcmn.cpp:476
#17 0x000000364026e954 in wxAppBase::SendIdleEvents (this=0x974c20,
win=<value optimized out>, event=...)
at src/common/appcmn.cpp:485
#18 0x000000364026ebb4 in wxAppBase::ProcessIdle (this=0x974c20) at
src/common/appcmn.cpp:443
#19 0x00000036401ce900 in wxapp_idle_callback () at src/gtk/app.cpp:213
#20 0x0000003565c3920e in g_main_dispatch (context=0x974e90) at
gmain.c:1960
#21 IA__g_main_context_dispatch (context=0x974e90) at gmain.c:2513
---Type <return> to continue, or q <return> to quit---
#22 0x0000003565c3cbf8 in g_main_context_iterate (context=0x974e90,
block=<value optimized out>, dispatch=<value optimized out>,
self=<value optimized out>) at gmain.c:2591
#23 0x0000003565c3d045 in IA__g_main_loop_run (loop=0xa5b2c0) at
gmain.c:2799
#24 0x000000363e94bd67 in IA__gtk_main () at gtkmain.c:1218
#25 0x00000036401e5c58 in wxEventLoop::Run (this=0xe20400) at
src/gtk/evtloop.cpp:76
#26 0x000000364026e9eb in wxAppBase::MainLoop (this=0x974c20) at
src/common/appcmn.cpp:312
#27 0x0000003be0297abc in wxEntry (argc=<value optimized out>, argv=<value
optimized out>) at src/common/init.cpp:460
#28 0x0000000000468fcf in main (argc=1, argv=0x7fffffffddd8) at
/home/davide/Documenti/Lavoro/Codice/Maya/mayaapp.cpp:6
(gdb) up 9
#9 wxTopLevelWindowGTK::SetTransparent (this=<value optimized out>,
alpha=<value optimized out>) at src/gtk/toplevel.cpp:1476
1476 Window win = wxGetTopmostWindowX11(dpy, GDK_WINDOW_XID
(m_widget->window));
(gdb) p dpy
$1 = (Display *) 0x992400
(gdb) p m_widget
Cannot access memory at address 0x1d0
(gdb)


--
Ticket URL: <http://trac.wxwidgets.org/ticket/11474#comment:1>

wxTrac

unread,
Mar 18, 2010, 6:30:40 PM3/18/10
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/11474#comment:2>

#11474: Dragging wxAuiNotebook tab out causes crash
---------------------+------------------------------------------------------
Reporter: net147 | Owner:

Type: defect | Status: confirmed


Priority: blocker | Milestone: 2.8.11
Component: wxAui | Version: 2.8.10
Keywords: | Blockedby:
Patch: 0 | Blocking:
---------------------+------------------------------------------------------

Comment(by frm):

Hi,
perhaps do you see this error also using the latest wxWidgets trunk?


--
Ticket URL: <http://trac.wxwidgets.org/ticket/11474#comment:2>

wxTrac

unread,
Apr 3, 2010, 5:38:53 AM4/3/10
to wx-...@googlegroups.com
Ticket URL: <http://trac.wxwidgets.org/ticket/11474#comment:7>

#11474: Dragging wxAuiNotebook tab out causes crash
---------------------+------------------------------------------------------
Reporter: net147 | Owner:

Type: defect | Status: confirmed
Priority: blocker | Milestone: 2.8.12

Component: wxAui | Version: 2.8.10
Keywords: | Blockedby:
Patch: 0 | Blocking:
---------------------+------------------------------------------------------

Comment(by cdron77):

Yes, I can reproduce it with the latest trunk, but only using KDE with
desktop effects enabled. If I use gnome (metacity) or compiz as window
manager it works fine, I was not able to reproduce. It works fine also if
I disable desktop effects in KDE. The only way that I see to reproduce it
now is to use Kwin with desktop effects enabled. As far as I remember, old
versions of wxWidgets presented this problem also with compiz.


--
Ticket URL: <http://trac.wxwidgets.org/ticket/11474#comment:7>

Reply all
Reply to author
Forward
0 new messages