GNOME Bugzilla – Bug 357361
evince-0.6.0 hangs in the file chooser dialog
Last modified: 2006-09-27 22:04:35 UTC
Evince-0.6.0 and 0.5.5 both hang when closing the gtk_file_chooser. In other words: 1. File->Open... 2. navigate to a directory with lots of files and subdirectories (e.g. my home directory) 3. click on "Open", or "Cancel", or try closing the file chooser using the window manager's button. 4. evince hangs immediately. I observe this behavior on two distinct machines -- a uniprocessor x86 box and an dual-core amd64 one. Both are running gnome-2.16, gtk+-2.10.3, glib-2.12.3, dbus-0.62, and glibc-2.4. The backtraces and strace are uninformative; after it hangs, evince is waiting for a futex at shell/ev_job_queue:179, at g_cond_wait (render_cond, ev_queue_mutex); and no longer responds to gtk events. And when I try to run it with ltrace, evince tends to crash immediately. Now, I found a simple workaround. In shell/main.c, comment out gdk_threads_init (). Then, evince works fine. It seems that gdk_threads_init () was added in response to bug 343347. And just like in that bug, with gdk_threads_init commented out, I can't open files from ftp any more... So, the choices are: a. keep gdk_threads_init () and make evince unusable for local files. b. remove gdk_threads_init () and make evince unusable for remote files. c. make evince single-threaded. d. actually find and fix the underlying bug (in gnomevfs, gtk, glib, or wherever it is).
Thanks for the bug report. Without a stack trace from the deadlock it's very hard to determine what caused it. Can you provide us with one? Please see http://live.gnome.org/GettingTraces for more information on how to do so.
backtrace on the x86 machine, for evince-0.6.0 in hung state:
+ Trace 73088
0xb75b51e4 is in the libORBitCosNaming-2.so.0.1.0 mapping 0xbfe19bc8 is in evince's stack.
And here is the backtrace of evince-0.6.0 hung on the amd64 machine.
+ Trace 73212
Thread 1 (Thread 47046549542480 (LWP 26321))
My distro (Gentoo) applied a fix to libgnomeui to close http://bugzilla.gnome.org/show_bug.cgi?id=355409 and now evince works again. I think that this bug is a duplicate.
Yes, gentoo's libgnomeui-2.16.0-r1 fixes the problem for me.
*** This bug has been marked as a duplicate of 355409 ***