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
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 model_get_ valist (tree_model= 0x45da810, iter=0x7fffffff dd40, args=0x7fffffff dc28) at /build/ buildd/ gtk+3.0- 3.2.0/. /gtk/gtktreemod el.c:1768 0x45da810, iter=0x7fffffff dd40) buildd/ gtk+3.0- 3.2.0/. /gtk/gtktreemod el.c:1730 store_thumbnail _set (store=0x45da810, iter=0x7fffffff dd40) at eog-list- store.c: 863 changed_ cb (image= 0x7fffe5403330, data=<optimized out>) at eog-window.c:802 display_ image (window=0x7c1640, image=0x7fffe54 03330) at eog-window.c:891 3500, data=<optimized out>) at eog-window.c:1334 values= 0x7fffe54220a0, invocation_ hint=<optimized out>) buildd/ glib2.0- 2.30.0/ ./gobject/ gclosure. c:774 emit_unlocked_ R (node=<optimized out>, detail=0, instance= 0x7fffe5303500, return= 0x0, instance_ and_params= 0x7fffe54220a0) at /build/ buildd/ glib2.0- 2.30.0/ ./gobject/ gsignal. c:3272 emit_valist (instance= <optimized out>, signal_ id=<optimized out>, <optimized out>, var_args=<optimized out>) at /build/ buildd/ glib2.0- 2.30.0/ ./gobject/ gsignal. c:3003 <optimized out>, signal_ id=<optimized out>, detail=<optimized out>) buildd/ glib2.0- 2.30.0/ ./gobject/ gsignal. c:3060 3500) at eog-job-queue.c:66 buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 2441 context_ dispatch (context=0x6ca3a0) at /build/ buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 3011 context_ iterate (context=0x6ca3a0, block=<optimized out>, dispatch=1, buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 3089 buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 3297 buildd/ gtk+3.0- 3.2.0/. /gtk/gtkmain. c:1367 0x7a3e60, argc=<optimized out>, argv=0x7fffffff e588) buildd/ glib2.0- 2.30.0/ ./gio/gapplicat ion.c:1323 e588) at main.c:168
#0 0x00007ffff6592f98 in gtk_tree_
var_
#1 0x00007ffff659327c in gtk_tree_model_get (tree_model=
at /build/
#2 0x0000000000427111 in eog_list_
#3 0x00000000004335a9 in image_thumb_
#4 0x0000000000433748 in eog_window_
#5 0x00000000004342f5 in eog_job_load_cb (job=0x7fffe530
#6 0x00007ffff49670a4 in g_closure_invoke (closure=0x45cefe0, return_value=0x0, n_param_values=1,
param_
at /build/
#7 0x00007ffff497902a in signal_
emission_
#8 0x00007ffff49826b1 in g_signal_
detail=
#9 0x00007ffff4982852 in g_signal_emit (instance=
at /build/
#10 0x00000000004238ac in notify_finished (job=0x7fffe530
#11 0x00007ffff44a1a5d in g_main_dispatch (context=0x6ca3a0) at /build/
#12 g_main_
#13 0x00007ffff44a2258 in g_main_
self=<optimized out>) at /build/
#14 0x00007ffff44a2792 in g_main_loop_run (loop=0x7a8170) at /build/
#15 0x00007ffff64a0e1d in gtk_main () at /build/
#16 0x00007ffff5c04a4e in g_application_run (application=
at /build/
#17 0x000000000041ce8f in main (argc=1, argv=0x7fffffff
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 get_monitor_ geometry (screen=0x0, monitor_num=-1, dest=0x7fffffff de40) buildd/ gtk+3.0- 3.2.0/. /gdk/gdkscreen. c:769 obtain_ desired_ size (image=<optimized out>, width=4000, height=3000, 0xed26b0) at eog-window.c:1225 0x7fffe453eff0, return_value=0x0, n_param_values=3, values= 0x6d01540, invocation_ hint=<optimized out>) at /build/ buildd/ glib2.0- 2.30.0/ ./gobject/ gclosure. c:774 emit_unlocked_ R (node=<optimized out>, detail=0, instance= 0x7fffe45a0400, return= 0x0, instance_ and_params= 0x6d01540) at /build/ buildd/ glib2.0- 2.30.0/ ./gobject/ gsignal. c:3272 emit_valist (instance= <optimized out>, signal_ id=<optimized out>, <optimized out>, var_args=<optimized out>) at /build/ buildd/ glib2.0- 2.30.0/ ./gobject/ gsignal. c:3003 <optimized out>, signal_ id=<optimized out>, detail=<optimized out>) buildd/ glib2.0- 2.30.0/ ./gobject/ gsignal. c:3060 size_prepared_ signal (img=<optimized out>) at eog-image.c:481 dispatch (data=0x6c99180) at /build/ buildd/ gtk+3.0- 3.2.0/. /gdk/gdk. c:754 buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 2441 context_ dispatch (context=0x6ca3a0) at /build/ buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 3011 context_ iterate (context=0x6ca3a0, block=<optimized out>, dispatch=1, buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 3089 buildd/ glib2.0- 2.30.0/ ./glib/ gmain.c: 3297 buildd/ gtk+3.0- 3.2.0/. /gtk/gtkmain. c:1367 0x79e830, argc=<optimized out>, argv=0x7fffffff e588) buildd/ glib2.0- 2.30.0/ ./gio/gapplicat ion.c:1323 e588) at main.c:168
#0 gdk_screen_
at /build/
#1 0x000000000043090e in eog_window_
window=
#2 0x00007ffff49670a4 in g_closure_invoke (closure=
param_
#3 0x00007ffff497902a in signal_
emission_
#4 0x00007ffff49826b1 in g_signal_
detail=
#5 0x00007ffff4982852 in g_signal_emit (instance=
at /build/
#6 0x000000000041e11e in do_emit_
#7 0x00007ffff60ed32f in gdk_threads_
#8 0x00007ffff44a1a5d in g_main_dispatch (context=0x6ca3a0) at /build/
#9 g_main_
#10 0x00007ffff44a2258 in g_main_
self=<optimized out>) at /build/
#11 0x00007ffff44a2792 in g_main_loop_run (loop=0x79dab0) at /build/
#12 0x00007ffff64a0e1d in gtk_main () at /build/
#13 0x00007ffff5c04a4e in g_application_run (application=
at /build/
#14 0x000000000041ce8f in main (argc=1, argv=0x7fffffff