Comment 19 for bug 827958

Revision history for this message
Chris Bainbridge (chris-bainbridge) wrote :

I updated to -proposed, ran the looping eog test case and saw the following two crashes but did not see the gdk_x11_window_get_xid() crash. So these crashes may or may not be related to this particular bug.

The first crash happens if you have an empty sub directory, eg:

$ ls -R
.:
a/ b/

./a:
test.jpg

./b:

$ while true; do eog "$(find . -type d|sort -R |head -1|cut -f 1)"; done

(gdb) bt
#0 0x00007ffff6592f98 in gtk_tree_model_get_valist (tree_model=0x45da810, iter=0x7fffffffdd40,
    var_args=0x7fffffffdc28) at /build/buildd/gtk+3.0-3.2.0/./gtk/gtktreemodel.c:1768
#1 0x00007ffff659327c in gtk_tree_model_get (tree_model=0x45da810, iter=0x7fffffffdd40)
    at /build/buildd/gtk+3.0-3.2.0/./gtk/gtktreemodel.c:1730
#2 0x0000000000427111 in eog_list_store_thumbnail_set (store=0x45da810, iter=0x7fffffffdd40) at eog-list-store.c:863
#3 0x00000000004335a9 in image_thumb_changed_cb (image=0x7fffe5403330, data=<optimized out>) at eog-window.c:802
#4 0x0000000000433748 in eog_window_display_image (window=0x7c1640, image=0x7fffe5403330) at eog-window.c:891
#5 0x00000000004342f5 in eog_job_load_cb (job=0x7fffe5303500, data=<optimized out>) at eog-window.c:1334
#6 0x00007ffff49670a4 in g_closure_invoke (closure=0x45cefe0, return_value=0x0, n_param_values=1,
    param_values=0x7fffe54220a0, invocation_hint=<optimized out>)
    at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c:774
#7 0x00007ffff497902a in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0x7fffe5303500,
    emission_return=0x0, instance_and_params=0x7fffe54220a0) at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c:3272
#8 0x00007ffff49826b1 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>,
    detail=<optimized out>, var_args=<optimized out>) at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c:3003
#9 0x00007ffff4982852 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>)
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c:3060
#10 0x00000000004238ac in notify_finished (job=0x7fffe5303500) at eog-job-queue.c:66
#11 0x00007ffff44a1a5d in g_main_dispatch (context=0x6ca3a0) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:2441
#12 g_main_context_dispatch (context=0x6ca3a0) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:3011
#13 0x00007ffff44a2258 in g_main_context_iterate (context=0x6ca3a0, block=<optimized out>, dispatch=1,
    self=<optimized out>) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:3089
#14 0x00007ffff44a2792 in g_main_loop_run (loop=0x7a8170) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:3297
#15 0x00007ffff64a0e1d in gtk_main () at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkmain.c:1367
#16 0x00007ffff5c04a4e in g_application_run (application=0x7a3e60, argc=<optimized out>, argv=0x7fffffffe588)
    at /build/buildd/glib2.0-2.30.0/./gio/gapplication.c:1323
#17 0x000000000041ce8f in main (argc=1, argv=0x7fffffffe588) at main.c:168

The second crash happened when a lot of windows were opened by the test case, and I tried to close some of them.

(gdb) bt
#0 gdk_screen_get_monitor_geometry (screen=0x0, monitor_num=-1, dest=0x7fffffffde40)
    at /build/buildd/gtk+3.0-3.2.0/./gdk/gdkscreen.c:769
#1 0x000000000043090e in eog_window_obtain_desired_size (image=<optimized out>, width=4000, height=3000,
    window=0xed26b0) at eog-window.c:1225
#2 0x00007ffff49670a4 in g_closure_invoke (closure=0x7fffe453eff0, return_value=0x0, n_param_values=3,
    param_values=0x6d01540, invocation_hint=<optimized out>) at /build/buildd/glib2.0-2.30.0/./gobject/gclosure.c:774
#3 0x00007ffff497902a in signal_emit_unlocked_R (node=<optimized out>, detail=0, instance=0x7fffe45a0400,
    emission_return=0x0, instance_and_params=0x6d01540) at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c:3272
#4 0x00007ffff49826b1 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>,
    detail=<optimized out>, var_args=<optimized out>) at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c:3003
#5 0x00007ffff4982852 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>)
    at /build/buildd/glib2.0-2.30.0/./gobject/gsignal.c:3060
#6 0x000000000041e11e in do_emit_size_prepared_signal (img=<optimized out>) at eog-image.c:481
#7 0x00007ffff60ed32f in gdk_threads_dispatch (data=0x6c99180) at /build/buildd/gtk+3.0-3.2.0/./gdk/gdk.c:754
#8 0x00007ffff44a1a5d in g_main_dispatch (context=0x6ca3a0) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:2441
#9 g_main_context_dispatch (context=0x6ca3a0) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:3011
#10 0x00007ffff44a2258 in g_main_context_iterate (context=0x6ca3a0, block=<optimized out>, dispatch=1,
    self=<optimized out>) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:3089
#11 0x00007ffff44a2792 in g_main_loop_run (loop=0x79dab0) at /build/buildd/glib2.0-2.30.0/./glib/gmain.c:3297
#12 0x00007ffff64a0e1d in gtk_main () at /build/buildd/gtk+3.0-3.2.0/./gtk/gtkmain.c:1367
#13 0x00007ffff5c04a4e in g_application_run (application=0x79e830, argc=<optimized out>, argv=0x7fffffffe588)
    at /build/buildd/glib2.0-2.30.0/./gio/gapplication.c:1323
#14 0x000000000041ce8f in main (argc=1, argv=0x7fffffffe588) at main.c:168