After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 357361 - evince-0.6.0 hangs in the file chooser dialog
evince-0.6.0 hangs in the file chooser dialog
Status: RESOLVED DUPLICATE of bug 355409
Product: evince
Classification: Core
Component: general
0.6.x
Other Linux
: High critical
: ---
Assigned To: Evince Maintainers
Evince Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-09-23 18:44 UTC by Alexandre Rostovtsev
Modified: 2006-09-27 22:04 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16



Description Alexandre Rostovtsev 2006-09-23 18:44:42 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).
Comment 1 Nickolay V. Shmyrev 2006-09-23 19:54:32 UTC
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.
Comment 2 Alexandre Rostovtsev 2006-09-23 21:20:11 UTC
backtrace on the x86 machine, for evince-0.6.0 in hung state:


0xb75b51e4 is in the libORBitCosNaming-2.so.0.1.0 mapping
0xbfe19bc8 is in evince's stack.
Comment 3 Alexandre Rostovtsev 2006-09-25 15:48:17 UTC
And here is the backtrace of evince-0.6.0 hung on the amd64 machine.

Thread 1 (Thread 47046549542480 (LWP 26321))

  • #0 __lll_mutex_lock_wait
    from /lib/libpthread.so.0
  • #1 default_attr
    from /lib/libpthread.so.0
  • #2 ??
  • #3 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #4 __after_morecore_hook
    from /lib/libc.so.6
  • #5 ??
  • #6 ??
  • #7 ??

Comment 4 Giacomo Perale 2006-09-27 21:40:48 UTC
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.
Comment 5 Alexandre Rostovtsev 2006-09-27 22:03:51 UTC
Yes, gentoo's libgnomeui-2.16.0-r1 fixes the problem for me.
Comment 6 Alexandre Rostovtsev 2006-09-27 22:04:35 UTC

*** This bug has been marked as a duplicate of 355409 ***