Hi,
We are experiencing a strange bug in our application, which result
sometimes in a segfault, and sometimes in a freeze of the application.
it's related to accel groups.
In our application (quite big, and I haven't tried to make a small test
case, but if someone is interested I can point to the code in our
application), we open a window, and in the constructor, we create an
accel group and attach it to the window ([0]).
One of the handled keys in Escape, and we close the window when we press
Esc ([1]).
If I "play" to open the window, press Esc, open the window, press Esc,
etc... At some point the application will segfault or freeze.
We gathered the output of gdb and strace (strange thing about futex??),
attached to this mail, but we don't know how to go further in the
debugging. Any idea about that?
Thanks in advanced.
[0] http://hg.gajim.org/gajim/file/93f6e8ddbc2a/src/message_window.py#l103
[1] http://hg.gajim.org/gajim/file/93f6e8ddbc2a/src/message_window.py#l423
--
Yann
(gdb) bt
#0 0x00007ffff4628ba5 in gtk_accel_groups_activate ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#1 0x00007ffff481e8ec in gtk_window_activate_key ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#2 0x00007ffff481e959 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#3 0x00007ffff46ee538 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#4 0x00007ffff6020804 in g_closure_invoke () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5 0x00007ffff60325bf in ?? () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007ffff603bbe3 in g_signal_emit_valist ()
from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007ffff603bfb2 in g_signal_emit () from
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007ffff4807451 in ?? () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#9 0x00007ffff46ec797 in gtk_propagate_event ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#10 0x00007ffff46eca23 in gtk_main_do_event ()
from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#11 0x00007ffff43581ec in ?? () from
/usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#12 0x00007ffff59530cf in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007ffff59538c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007ffff5953e02 in g_main_loop_run () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff46eba77 in gtk_main () from
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#16 0x00007ffff4da2f14 in ?? () from
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/_gtk.so
#17 0x00000000004c62a2 in PyEval_EvalFrameEx ()
#18 0x00000000004ccee6 in PyEval_EvalCodeEx ()
#19 0x0000000000577901 in PyRun_FileExFlags ()
#20 0x0000000000577b37 in PyRun_SimpleFileExFlags ()
#21 0x0000000000550497 in Py_Main ()
#22 0x00007ffff69a1ead in __libc_start_main () from
/lib/x86_64-linux-gnu/libc.so.6
#23 0x000000000041dea1 in _start ()
recvfrom(4, 0x29ea2c4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily
unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"\22\0\7\0009\10\300\2[\1\0\0\6\0\0\0
\4\5\0\1\0\0\0\"w\231(\24\0\6\0"..., 52}, {NULL, 0}, {"", 0}], 3) = 52
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4, "\1
LV\4\0\0\0\6\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096, 0, NULL,
NULL) = 48
recvfrom(4, 0x29ea2c4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily
unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"\16\0\2\0008\10\300\2", 8}, {NULL, 0}, {"", 0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4,
"\1\30MV\0\0\0\0\255\0\0\0\n\0%\0\364\1\220\1\0\0\0\0\0\0\0\0\0\0\0\0", 4096,
0, NULL, NULL) = 32
recvfrom(4, 0x29ea2c4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily
unavailable)
recvfrom(4, 0x29ea2c4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily
unavailable)
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{"(\0\4\0008\10\300\2\255\0\0\0\0\0\0\0", 16}, {NULL, 0}, {"",
0}], 3) = 16
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4,
"\1\1NV\0\0\0\0\345\275\333\0a\3n\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0,
NULL, NULL) = 32
recvfrom(4, 0x29ea2c4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily
unavailable)
recvfrom(4, 0x29ea2c4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily
unavailable)
open("/home/zimio/.config/gajim/.config.test", O_WRONLY|O_CREAT|O_TRUNC,
0666) = 18
fstat(18, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
fstat(18, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7fcfe5d3f000
write(18, "last_sounds_dir = \nnotif_signout"..., 4096) = 4096
write(18, "multiple_tabs = True\nnotify_on_f"..., 4096) = 4096
write(18, "s.default.bannerfont = \nthemes.d"..., 4096) = 4096
write(18, "s.thiessen.im.client_cert = \nacc"..., 4096) = 4096
write(18, "jim\naccounts.jabber.org.name = p"..., 4096) = 4096
write(18, " = jefry-temp\naccounts.prosody.i"..., 4096) = 4096
write(18, "rue\naccounts.Local.subscribe_tun"..., 4096) = 4096
write(18, "isible.mood = \nstatusmsg._last_i"..., 3700) = 3700
fsync(18) = 0
close(18) = 0
munmap(0x7fcfe5d3f000, 4096) = 0
stat("/home/zimio/.config/gajim/config.test", {st_mode=S_IFREG|0600,
st_size=32372, ...}) = 0
rename("/home/zimio/.config/gajim/.config.test",
"/home/zimio/.config/gajim/config.test") = 0
chmod("/home/zimio/.config/gajim/config.test", 0600) = 0
write(5, "\1\0\0\0\0\0\0\0", 8) = 8
stat("gajim.py", {st_mode=S_IFREG|0644, st_size=15497, ...}) = 0
open("gajim.py", O_RDONLY) = 18
fstat(18, {st_mode=S_IFREG|0644, st_size=15497, ...}) = 0
fstat(18, {st_mode=S_IFREG|0644, st_size=15497, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x7fcfe5d3f000
read(18, "# -*- coding:utf-8 -*-\n## src/ga"..., 8192) = 8192
read(18, "SD', 'OpenBSD', 'NetBSD'):\n "..., 4096) = 4096
read(18, "find('gajim') < 0:\n r"..., 4096) = 3209
read(18, "", 4096) = 0
close(18) = 0
munmap(0x7fcfe5d3f000, 4096) = 0
write(2, "gajim.py:456: GtkWarning: IA__gt"..., 121gajim.py:456:
GtkWarning: IA__gtk_accel_group_activate: assertion `GTK_IS_ACCEL_GROUP
(accel_group)' failed
gtk.main()
) = 121
futex(0x2a1a2a0, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2a1a2a0, FUTEX_WAKE_PRIVATE, 1) = 1
_______________________________________________
pygtk mailing list pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/