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/

Reply via email to