Looks like it is triggered by some race condition when scanning a directory. I can reproduce by:
run gdb eog in a window
in another window cd to a directory with images in subdirectories and run the following command:
while true; do eog "$(find . -type d|sort -R |head -1|cut -f 1)"; done
It opens a random subdir every iteration but crashes quite quickly. You can try adding a little sleep:
while true; do eog "$(find . -type d|sort -R |head -1|cut -f 1)"; sleep 1; done
At a guess, could it be that eog is scanning the subdir (building thumbnails or something) and has not yet opened the gdk window. Another eog instance then gets launched, and there is now an invalid window pointer?
Looks like it is triggered by some race condition when scanning a directory. I can reproduce by:
run gdb eog in a window
in another window cd to a directory with images in subdirectories and run the following command:
while true; do eog "$(find . -type d|sort -R |head -1|cut -f 1)"; done
It opens a random subdir every iteration but crashes quite quickly. You can try adding a little sleep:
while true; do eog "$(find . -type d|sort -R |head -1|cut -f 1)"; sleep 1; done
At a guess, could it be that eog is scanning the subdir (building thumbnails or something) and has not yet opened the gdk window. Another eog instance then gets launched, and there is now an invalid window pointer?