Crash in low level X window lib after using SetStatusText
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
wxwidgets2.8 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
The bug is probably at a lower level, but is exhibited when I add the following code to my Python application:
class MyFramce(wx.Frame):
def SomeFunction(self):
The exact commit that causes the crash in my application is isolated in that git branch:
http://
The application crashes 80% of the time with different error messages.
* crash style #1
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
* crash style #2
The program 'python' received an X Window System error.
This probably reflects a bug in the program.
The error was 'RenderBadPicture (invalid Picture parameter)'.
(Details: serial 1851 error_code 173 request_code 153 minor_code 6)
(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.)
* crash style #3
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
The program 'python' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadIDChoice (invalid resource ID chosen for this connection)'.
(Details: serial 2924 error_code 14 request_code 153 minor_code 4)
(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.)
* crash style #4
python: ../../src/
Aborted
* crash style #5
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
*** glibc detected *** /usr/bin/python: corrupted double-linked list: 0x0833f600 ***
Of these situations I sometimes get stacktraces using gdb in the following way: gdb --args python standalone_
Sometimes the stacktrace isn't there at all.
Here are the 2 types of stack traces I managed to get after running about 50 sessions in gdb (of which abou 30% generate a stacktrace).
* stack trace type #1
python: ../../src/
Program received signal SIGABRT, Aborted.
0x0012d422 in __kernel_vsyscall ()
(gdb) bt
#0 0x0012d422 in __kernel_vsyscall ()
#1 0x001b54d1 in *__GI_raise (sig=6) at ../nptl/
#2 0x001b8932 in *__GI_abort () at abort.c:92
#3 0x001ae648 in *__GI___assert_fail (assertion=
function=
#4 0x015dffd3 in ?? () from /usr/lib/
#5 0x015e0526 in _XReply () from /usr/lib/
#6 0x015d41a7 in XSync () from /usr/lib/
#7 0x015d4335 in ?? () from /usr/lib/
#8 0x01769cf9 in XRenderChangePi
#9 0x01722e51 in ?? () from /usr/lib/
#10 0x017252d8 in ?? () from /usr/lib/
#11 0x01709bad in ?? () from /usr/lib/
#12 0x01709d45 in ?? () from /usr/lib/
#13 0x0170cc89 in ?? () from /usr/lib/
#14 0x0170ceaa in ?? () from /usr/lib/
#15 0x01709357 in ?? () from /usr/lib/
#16 0x016eff26 in ?? () from /usr/lib/
#17 0x016e9f4d in cairo_fill_preserve () from /usr/lib/
#18 0x016e9f72 in cairo_fill () from /usr/lib/
#19 0x0116a15f in ?? () from /usr/lib/
#20 0x0116bbcc in gdk_window_
#21 0x00eab184 in gtk_main_do_event () from /usr/lib/
#22 0x01175204 in ?? () from /usr/lib/
#23 0x011751b3 in ?? () from /usr/lib/
#24 0x011751b3 in ?? () from /usr/lib/
#25 0x011751b3 in ?? () from /usr/lib/
#26 0x011751b3 in ?? () from /usr/lib/
#27 0x011751b3 in ?? () from /usr/lib/
#28 0x011751b3 in ?? () from /usr/lib/
#29 0x01198764 in ?? () from /usr/lib/
#30 0x0116c7f9 in ?? () from /usr/lib/
#31 0x0116e86f in gdk_window_
#32 0x00e1d37f in ?? () from /usr/lib/
#33 0x0114af78 in ?? () from /usr/lib/
#34 0x0143d101 in ?? () from /lib/libglib-
#35 0x0143ee88 in g_main_
#36 0x01442730 in ?? () from /lib/libglib-
#37 0x01442b9f in g_main_loop_run () from /lib/libglib-
#38 0x00eab419 in gtk_main () from /usr/lib/
#39 0x008b4c78 in wxEventLoop::Run() () from /usr/lib/
#40 0x00947e3e in wxAppBase:
#41 0x002f4b42 in wxPyApp::MainLoop() () from /usr/lib/
#42 0x00368e2a in ?? () from /usr/lib/
#43 0x080dc131 in PyEval_EvalFrameEx ()
#44 0x080dddf2 in PyEval_EvalCodeEx ()
#45 0x0816014c in ?? ()
#46 0x0806120a in PyObject_Call ()
#47 0x080684ac in ?? ()
#48 0x0806120a in PyObject_Call ()
#49 0x080dbc3c in PyEval_EvalFrameEx ()
#50 0x080dd384 in PyEval_EvalFrameEx ()
* stack trace type #2
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
python: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
*** glibc detected *** /usr/bin/python: corrupted double-linked list: 0x0833f600 ***
======= Backtrace: =========
/lib/tls/
/lib/tls/
/lib/tls/
/lib/tls/
/lib/tls/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/lib/libglib-
/lib/libglib-
/lib/libglib-
/lib/libglib-
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
/usr/bin/
======= Memory map: ========
00110000-0012b000 r-xp 00000000 08:01 2215704 /lib/ld-2.10.1.so
0012b000-0012c000 r--p 0001a000 08:01 2215704 /lib/ld-2.10.1.so
0012c000-0012d000 rw-p 0001b000 08:01 2215704 /lib/ld-2.10.1.so
0012d000-0012e000 r-xp 00000000 00:00 0 [vdso]
0012e000-00143000 r-xp 00000000 08:01 2235034 /lib/tls/
00143000-00144000 r--p 00014000 08:01 2235034 /lib/tls/
00144000-00145000 rw-p 00015000 08:01 2235034 /lib/tls/
00145000-00147000 rw-p 00000000 00:00 0
00147000-00149000 r-xp 00000000 08:01 2234987 /lib/tls/
00149000-0014a000 r--p 00001000 08:01 2234987 /lib/tls/
0014a000-0014b000 rw-p 00002000 08:01 2234987 /lib/tls/
0014b000-0014d000 r-xp 00000000 08:01 2235039 /lib/tls/
0014d000-0014e000 r--p 00001000 08:01 2235039 /lib/tls/
0014e000-0014f000 rw-p 00002000 08:01 2235039 /lib/tls/
0014f000-00163000 r-xp 00000000 08:01 2215778 /lib/libz.
00163000-00164000 r--p 00013000 08:01 2215778 /lib/libz.
00164000-00165000 rw-p 00014000 08:01 2215778 /lib/libz.
00165000-00189000 r-xp 00000000 08:01 2234988 /lib/tls/
00189000-0018a000 r--p 00023000 08:01 2234988 /lib/tls/
0018a000-0018b000 rw-p 00024000 08:01 2234988 /lib/tls/
0018b000-002c9000 r-xp 00000000 08:01 2234783 /lib/tls/
002c9000-002ca000 ---p 0013e000 08:01 2234783 /lib/tls/
002ca000-002cc000 r--p 0013e000 08:01 2234783 /lib/tls/
002cc000-002cd000 rw-p 00140000 08:01 2234783 /lib/tls/
002cd000-002d0000 rw-p 00000000 00:00 0
002d0000-00412000 r-xp 00000000 08:01 2373787 /usr/lib/
00412000-00413000 r--p 00141000 08:01 2373787 /usr/lib/
00413000-0041e000 rw-p 00142000 08:01 2373787 /usr/lib/
0041e000-004fb000 r-xp 00000000 08:01 1777841 /usr/lib/
004fb000-00501000 r--p 000dd000 08:01 1777841 /usr/lib/
00501000-00502000 rw-p 000e3000 08:01 1777841 /usr/lib/
00502000-00504000 rw-p 00000000 00:00 0
00504000-0056e000 r-xp 00000000 08:01 1776621 /usr/lib/
0056e000-00571000 r--p 00069000 08:01 1776621 /usr/lib/
00571000-00572000 rw-p 0006c000 08:01 1776621 /usr/lib/
00572000-00573000 rw-p 00000000 00:00 0
00573000-00600000 r-xp 00000000 08:01 1777844 /usr/lib/
00600000-00603000 r--p 0008c000 08:01 1777844 /usr/lib/
00603000-00604000 rw-p 0008f000 08:01 1777844 /usr/lib/
00604000-00605000 rw-p 00000000 00:00 0
00605000-00621000 r-xp 00000000 08:01 1777840 /usr/lib/
00621000-00623000 r--p 0001b000 08:01 1777840 /usr/lib/
00623000-00624000 rw-p 0001d000 08:01 1777840 /usr/lib/
00624000-006b9000 r-xp 00000000 08:01 1777836 /usr/lib/
006b9000-006be000 r--p 00094000 08:01 1777836 /usr/lib/
006be000-006bf000 rw-p 00099000 08:01 1777836 /usr/lib/
006bf000-006c0000 rw-p 00000000 00:00 0
006c0000-00772000 r-xp 00000000 08:01 1776184 /usr/lib/
00772000-00773000 ---p 000b2000 08:01 1776184 /usr/lib/
00773000-0077b000 r--p 000b2000 08:01 1776184 /usr/lib/
0077b000-0077c000 rw-p 000ba000 08:01 1776184 /usr/lib/
0077c000-0077e000 rw-p 00000000 00:00 0
0077e000-00aae000 r-xp 00000000 08:01 1776782 /usr/lib/
00aae000-00ad5000 r--p 0032f000 08:01 1776782 /usr/lib/
00ad5000-00ada000 rw-p 00356000 08:01 1776782 /usr/lib/
Program received signal SIGABRT, Aborted.
0x0012d422 in __kernel_vsyscall ()
Note: using "xhost +" seems to reduce the risk of crashing the app. A bit. I still get crashes most of the time (> 50%).
Please provide some guidance as to where search further. Not having the ability to use a status bar in a GUI app seems constraining :)
Changed in wxwidgets2.8 (Ubuntu): | |
status: | New → Invalid |
I've made a smaller test case, which seems to pinpoint that the issue is somewhat thread related/triggered.