On Mon, Jun 25, 2012 at 01:04:30PM +0200, Christophe Fergeau wrote:
It happens at more or less random times, so I'm not sure if
I'll be able to
catch a backtrace when the watch is removed.
Luckily watches don't get removed very often, so I managed to catch both
the remove and the following update in gdb:
Breakpoint 1, gvir_event_handle_remove (watch=1) at
libvirt-glib-event.c:276
276 {
(gdb) bt
#0 gvir_event_handle_remove (watch=1) at libvirt-glib-event.c:276
#1 0x00007ffff5f4013a in virEventRemoveHandle (watch=1) at util/event.c:84
#2 0x00007ffff6082498 in virNetSocketRemoveIOCallback
(sock=0x7fffdc001fe0)
at rpc/virnetsocket.c:1399
#3 0x00007ffff606ec96 in virNetClientIncomingEvent (sock=0x7fffdc001fe0,
events=2, opaque=0x7fffdc001e20) at rpc/virnetclient.c:1647
#4 0x00007ffff608213c in virNetSocketEventHandle (watch=1, fd=26,
events=2,
opaque=0x7fffdc001fe0) at rpc/virnetsocket.c:1314
#5 0x00007ffff66708cd in gvir_event_handle_dispatch
(source=0x7fffdc001f60,
condition=G_IO_OUT, opaque=0x7fffdc001930) at libvirt-glib-event.c:136
#6 0x00007ffff1e20cb4 in g_io_unix_dispatch (source=0x7fffb8002c00,
callback=0x7ffff66707f8 <gvir_event_handle_dispatch>,
user_data=0x7fffdc001930) at giounix.c:166
#7 0x00007ffff1dd1f15 in g_main_dispatch (context=0x6fea30) at
gmain.c:2539
#8 0x00007ffff1dd2bda in g_main_context_dispatch (context=0x6fea30)
at gmain.c:3075
#9 0x00007ffff1dd2dbd in g_main_context_iterate (context=0x6fea30,
block=1,
dispatch=1, self=0x1582780) at gmain.c:3146
#10 0x00007ffff1dd2e81 in g_main_context_iteration (context=0x6fea30,
may_block=1) at gmain.c:3207
#11 0x00007ffff25dbe7c in g_application_run (application=0x709890, argc=0,
argv=0x0) at gapplication.c:1607
#12 0x000000000041dec8 in boxes_app_run (self=0x1525010) at app.c:1187
#13 0x00000000004506f4 in _vala_main (args=0x7fffffffd738, args_length1=1)
at main.c:729
#14 0x000000000045075e in main (argc=1, argv=0x7fffffffd738) at main.c:740
(gdb) c
Continuing.
[Thread 0x7fffd5853700 (LWP 30606) exited]
Program received signal SIGTRAP, Trace/breakpoint trap.
gvir_event_handle_find (watch=1) at libvirt-glib-event.c:202
202 if ((h->watch == watch) && !h->removed) {
(gdb) bt
#0 gvir_event_handle_find (watch=1) at libvirt-glib-event.c:202
#1 0x00007ffff6670b78 in gvir_event_handle_update (watch=1, events=1)
at libvirt-glib-event.c:218
#2 0x00007ffff5f400e9 in virEventUpdateHandle (watch=1, events=1)
at util/event.c:70
#3 0x00007ffff60823f1 in virNetSocketUpdateIOCallback
(sock=0x7fffdc001fe0,
events=1) at rpc/virnetsocket.c:1384
#4 0x00007ffff606e74e in virNetClientIOUpdateCallback
(client=0x7fffdc001e20,
enableCallback=true) at rpc/virnetclient.c:1454
#5 0x00007ffff606ecec in virNetClientIncomingEvent (sock=0x7fffdc001fe0,
events=2, opaque=0x7fffdc001e20) at rpc/virnetclient.c:1659
#6 0x00007ffff608213c in virNetSocketEventHandle (watch=1, fd=26,
events=2,
opaque=0x7fffdc001fe0) at rpc/virnetsocket.c:1314
#7 0x00007ffff66708cd in gvir_event_handle_dispatch
(source=0x7fffdc001f60,
condition=G_IO_OUT, opaque=0x7fffdc001930) at libvirt-glib-event.c:136
#8 0x00007ffff1e20cb4 in g_io_unix_dispatch (source=0x7fffb8002c00,
callback=0x7ffff66707f8 <gvir_event_handle_dispatch>,
user_data=0x7fffdc001930) at giounix.c:166
#9 0x00007ffff1dd1f15 in g_main_dispatch (context=0x6fea30) at
gmain.c:2539
#10 0x00007ffff1dd2bda in g_main_context_dispatch (context=0x6fea30)
at gmain.c:3075
#11 0x00007ffff1dd2dbd in g_main_context_iterate (context=0x6fea30,
block=1,
dispatch=1, self=0x1582780) at gmain.c:3146
#12 0x00007ffff1dd2e81 in g_main_context_iteration (context=0x6fea30,
may_block=1) at gmain.c:3207
#13 0x00007ffff25dbe7c in g_application_run (application=0x709890, argc=0,
argv=0x0) at gapplication.c:1607
#14 0x000000000041dec8 in boxes_app_run (self=0x1525010) at app.c:1187
#15 0x00000000004506f4 in _vala_main (args=0x7fffffffd738, args_length1=1)
at main.c:729
#16 0x000000000045075e in main (argc=1, argv=0x7fffffffd738) at main.c:740
(gdb)
Hope that helps,
Christophe