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 305316 - Crashes when hitting 'Refresh' while viewing a PostScript document
Crashes when hitting 'Refresh' while viewing a PostScript document
Status: RESOLVED FIXED
Product: evince
Classification: Core
Component: general
0.3.x
Other All
: High critical
: ---
Assigned To: Evince Maintainers
Evince Maintainers
: 309072 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-05-24 12:29 UTC by Florian Schricker
Modified: 2005-06-27 21:13 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Florian Schricker 2005-05-24 12:29:42 UTC
Steps to reproduce:
1. Load some PostScript document
2. Skip some pages
3. Hit 'Refresh' (sometimes you need to hit 'Refresh' more often)


Stack trace:
(gdb) thread apply all bt

Thread 3 (Thread 16386 (LWP 15287))

  • #0 __pthread_sigsuspend
    from /lib/libpthread.so.0
  • #1 __pthread_wait_for_restart_signal
    from /lib/libpthread.so.0
  • #2 pthread_cond_wait
    from /lib/libpthread.so.0
  • #3 ps_document_get_type
  • #4 ev_document_render_pixbuf
  • #5 ev_job_render_run
  • #6 ev_document_find_changed
  • #7 ev_document_find_changed
  • #8 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #9 ??
  • #10 ??
  • #11 __check_rhosts_file
    from /lib/libc.so.6
  • #12 ??
    from /lib/libpthread.so.0
  • #13 ??
    from /lib/libpthread.so.0
  • #14 ??
  • #15 ??
  • #16 pthread_start_thread
    from /lib/libpthread.so.0
  • #17 ??
  • #18 ??
  • #19 ??
  • #20 ??
  • #21 ??

[ad infinitum]

Other information:
Error messages differ, sometimes I get (as terminal output):
----
$ evince mydoc.ps

(evince:15297): GLib-GObject-CRITICAL **: g_cclosure_marshal_VOID__INT:
assertion `n_param_values == 2' failed

(evince:15297): GLib-GObject-CRITICAL **: g_cclosure_marshal_VOID__INT:
assertion `n_param_values == 2' failed

(evince:15297): GLib-GObject-CRITICAL **: g_cclosure_marshal_VOID__INT:
assertion `n_param_values == 2' failed
----
and evince quits.
Comment 1 Thomas de Grenier de Latour 2005-05-26 17:38:46 UTC
I have troubles for reloading PS files too (with 0.3.1), but no crash. When I
hit the refresh button, it just hangs, and in console i can read:
*** glibc detected *** double free or corruption (fasttop): 0x082ed628 ***

I'm sorry, but I don't know how to get some backtrace when i don't have a core
file :-/
Any hint would be appreciated, so that i can report back something more useful. 
Thanks.
Comment 2 Nickolay V. Shmyrev 2005-05-27 00:15:26 UTC
Yeah, the problem exists. I think we have problems with locks here but we should
investigate it.
Comment 3 Marco Pesenti Gritti 2005-05-31 14:39:36 UTC
Now it works if you dont reload while it's still rendering...
Comment 4 Marco Pesenti Gritti 2005-05-31 16:14:12 UTC
Ok the locks is a pretty bad issue.

Basically the old document is holding the doc mutex until rendering is finished,
the new document tries to get the lock -> hang

I guess the possible solutions are to wait rendering is done before loading a
new file or to make the lock per document rather than global.
This issue applies to all backends, ps expose it because it's slow to render.
Comment 5 Marco Pesenti Gritti 2005-05-31 16:28:33 UTC
Well, actually the ps case is special because we render on the main. Will have
to talk about this with jrb.
Comment 6 Marco Pesenti Gritti 2005-06-07 09:22:05 UTC
This should be fixed in cvs
Comment 7 Nickolay V. Shmyrev 2005-06-27 21:13:52 UTC
*** Bug 309072 has been marked as a duplicate of this bug. ***