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 638312 - crash in ev_document_info_free
crash in ev_document_info_free
Status: RESOLVED FIXED
Product: evince
Classification: Core
Component: BugBuddyBugs
2.32.x
Other All
: High critical
: ---
Assigned To: Evince Maintainers
Evince Maintainers
: 639076 642224 643600 645055 645823 646265 647376 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2010-12-29 23:59 UTC by phaller
Modified: 2011-04-11 00:33 UTC
See Also:
GNOME target: ---
GNOME version: 2.31/2.32


Attachments
gdb backtrace (29.85 KB, text/plain)
2011-01-31 06:11 UTC, Dennis Sheil
Details
bzip2 compressed valgrind run of evince (54.65 KB, application/x-bzip)
2011-01-31 06:12 UTC, Dennis Sheil
Details

Description phaller 2010-12-29 23:59:19 UTC
Version: 2.32.0

What were you doing when the application crashed?
VIewing http://download.microsoft.com/download/5/c/0/5c0bd0ab-040d-4c56-a60b-661001012dda/windows_server_2008_r2_e-book.pdf. The crash occurred when closing Evince.


Distribution: Gentoo Base System release 2.0.1
Gnome Release: 2.32.1 2010-12-24 (Gentoo)
BugBuddy Version: 2.32.0

System: Linux 2.6.36-gentoo-r4 #1 PREEMPT Sat Dec 11 18:22:03 CET 2010 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10902902
Selinux: No
Accessibility: Disabled
GTK+ Theme: Clearlooks-DarkLime
Icon Theme: oxygen
GTK+ Modules: canberra-gtk-module, gnomesegvhandler

Memory status: size: 463028224 vsize: 463028224 resident: 57929728 share: 18546688 rss: 57929728 rss_rlim: 18446744073709551615
CPU usage: start_time: 1293666968 rtime: 919 utime: 819 stime: 100 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/evince'

[Thread debugging using libthread_db enabled]
[New Thread 0x7fe23f932710 (LWP 16442)]
[New Thread 0x7fe245007710 (LWP 16437)]
[New Thread 0x7fe246009710 (LWP 16435)]
0x000000328f80ee7d in waitpid () from /lib/libpthread.so.0

Thread 1 (Thread 0x7fe246e528e0 (LWP 16432))

  • #0 waitpid
    from /lib/libpthread.so.0
  • #1 g_spawn_sync
    from /usr/lib/libglib-2.0.so.0
  • #2 g_spawn_command_line_sync
    from /usr/lib/libglib-2.0.so.0
  • #3 bugbuddy_segv_handle
    from /usr/lib64/gtk-2.0/modules/libgnomesegvhandler.so
  • #4 <signal handler called>
  • #5 free
    from /lib/libc.so.6
  • #6 ev_document_info_free
    from /usr/lib/libevdocument.so.3
  • #7 ev_document_finalize
    from /usr/lib/libevdocument.so.3
  • #8 g_object_unref
    from /usr/lib/libgobject-2.0.so.0
  • #9 ev_page_cache_finalize
    from /usr/lib/libevview.so.3
  • #10 g_object_unref
    from /usr/lib/libgobject-2.0.so.0
  • #11 ev_view_destroy
    from /usr/lib/libevview.so.3
  • #12 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #13 signal_emit_unlocked_R
    from /usr/lib/libgobject-2.0.so.0
  • #14 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #15 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #16 gtk_object_dispose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #17 g_object_run_dispose
    from /usr/lib/libgobject-2.0.so.0
  • #18 gtk_scrolled_window_forall
    from /usr/lib/libgtk-x11-2.0.so.0
  • #19 gtk_container_destroy
    from /usr/lib/libgtk-x11-2.0.so.0
  • #20 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #21 signal_emit_unlocked_R
    from /usr/lib/libgobject-2.0.so.0
  • #22 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #24 gtk_object_dispose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #25 g_object_run_dispose
    from /usr/lib/libgobject-2.0.so.0
  • #26 gtk_box_forall
    from /usr/lib/libgtk-x11-2.0.so.0
  • #27 gtk_container_destroy
    from /usr/lib/libgtk-x11-2.0.so.0
  • #28 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #29 signal_emit_unlocked_R
    from /usr/lib/libgobject-2.0.so.0
  • #30 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #31 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #32 gtk_object_dispose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #33 g_object_run_dispose
    from /usr/lib/libgobject-2.0.so.0
  • #34 gtk_container_destroy
    from /usr/lib/libgtk-x11-2.0.so.0
  • #35 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #36 signal_emit_unlocked_R
    from /usr/lib/libgobject-2.0.so.0
  • #37 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #38 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #39 gtk_object_dispose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #40 g_object_run_dispose
    from /usr/lib/libgobject-2.0.so.0
  • #41 gtk_box_forall
    from /usr/lib/libgtk-x11-2.0.so.0
  • #42 gtk_container_destroy
    from /usr/lib/libgtk-x11-2.0.so.0
  • #43 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #44 signal_emit_unlocked_R
    from /usr/lib/libgobject-2.0.so.0
  • #45 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #46 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #47 gtk_object_dispose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #48 g_object_run_dispose
    from /usr/lib/libgobject-2.0.so.0
  • #49 gtk_container_destroy
    from /usr/lib/libgtk-x11-2.0.so.0
  • #50 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #51 signal_emit_unlocked_R
    from /usr/lib/libgobject-2.0.so.0
  • #52 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #53 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #54 gtk_object_dispose
    from /usr/lib/libgtk-x11-2.0.so.0
  • #55 ev_window_dispose
  • #56 g_object_run_dispose
    from /usr/lib/libgobject-2.0.so.0
  • #57 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #58 gdk_event_dispatch
    from /usr/lib/libgdk-x11-2.0.so.0
  • #59 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #60 g_main_context_iterate.clone.5
    from /usr/lib/libglib-2.0.so.0
  • #61 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #62 gtk_main
    from /usr/lib/libgtk-x11-2.0.so.0
  • #63 main
A debugging session is active.

	Inferior 1 [process 16432] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]
Comment 1 Fabio Durán Verdugo 2010-12-30 03:16:04 UTC
I try and I try but evince don't crash version 2.32.0 Using poppler/cairo (0.14.5) FC14
Comment 2 Akhil Laddha 2010-12-30 03:44:35 UTC
Works fine even with Evince 2.30.2

Thanks for taking the time to report this bug.
Unfortunately, that stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash. Can you get us a stack trace with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so. Thanks in advance!
Comment 3 Dennis Sheil 2011-01-31 06:11:36 UTC
Created attachment 179695 [details]
gdb backtrace
Comment 4 Dennis Sheil 2011-01-31 06:12:43 UTC
Created attachment 179696 [details]
bzip2 compressed valgrind run of evince
Comment 5 Dennis Sheil 2011-01-31 06:19:54 UTC
This bug has been seen by over 20 people in the Ubuntu 11.04 alpha - https://bugs.launchpad.net/bugs/708404 .  I can reproduce it as well.  Above are attached a gdb backtrace of the segmentation violation, as well as a valgrind run on evince when it crashes.

My system is x86-64.  Running the default evince install - evince 2.32.0.  Glib is 2.27.92.
Comment 6 Akhil Laddha 2011-01-31 06:21:54 UTC
Thanks for the traces.
Comment 7 Dennis Sheil 2011-01-31 07:38:18 UTC
I have the Ubuntu 11.04 source package on my system, and got the same crash when building from the default source.  I looked at the closest evince part to the backtrace and it was the same as the packaged backtrace.  The line in question in the ev_document_info_free() function is

$ cat -n ev-document.c | grep 756
   756        g_free (info->linearized)

While I don't see reference to poppler in the backtrace, I do know a lot of linearization changes have been made in poppler recently.  So that is quite possibly related.
Comment 8 Carlos Garcia Campos 2011-01-31 08:39:52 UTC
What poppler version are you using? depending on the poppler version you might need this patch: 

http://git.gnome.org/browse/evince/commit/?id=f77e6cf4fd7fef49ac91d8c62b6a9a993529adb8
Comment 9 Dennis Sheil 2011-01-31 10:08:58 UTC
Ubuntu 11.04 alpha uses poppler 0.16.0.  I applied the patch and the segmentation violation went away, the session now ends:

(evince:11527): GLib-GObject-WARNING **: g_object_weak_unref: couldn't find weak ref 0x7fb7781201a0(0x7fb770003ac0)
(evince:11527): GLib-GObject-WARNING **: invalid uninstantiatable type `<invalid>' in cast to `GObject'
(evince:11527): GLib-GObject-CRITICAL **: g_object_steal_data: assertion `G_IS_OBJECT (object)' failed
(evince:11527): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `<invalid>'
(evince:11527): GLib-GObject-CRITICAL **: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

Looking through the evince source - in this version, and in the latest git commit, I still see places where linearization is dealt with, without alternative #ifdef statements, I don't know if the patch mitigates all, or just some of that.

Nonetheless, evince no longer crashes when closing with the crash, now it just spits out the assertion errors.
Comment 10 Carlos Garcia Campos 2011-01-31 11:19:54 UTC
If you are using poppler 0.16 you shouldn't need the #ifdefs, just use the new api. Why are you still using evince 2.32 in new ubuntu?
Comment 11 José Aliste 2011-01-31 13:19:11 UTC
*** Bug 639076 has been marked as a duplicate of this bug. ***
Comment 12 Ionut Biru 2011-02-06 13:15:38 UTC
we have the same bug for evince in arch after we switched to poppler 0.16.

i was thinking that is might be a bug in poppler and i reported to them.

https://bugs.freedesktop.org/show_bug.cgi?id=33935

there you can find a gdb backtrace but it doesn't have any trace in poppler.
Comment 13 Ionut Biru 2011-02-06 13:25:18 UTC
patch from https://bugzilla.gnome.org/show_bug.cgi?id=638312#c8 fix the problem
Comment 14 Akhil Laddha 2011-02-21 04:01:37 UTC
Shall we close the bug if patch attached in comment#8 fix the crash ?
Comment 15 Dennis Sheil 2011-02-22 19:52:27 UTC
> Shall we close the bug if patch attached in comment#8 fix the crash ?

I would say so.  The backported patch works for Ubuntu and Arch, and should work for Gentoo as well (proper poppler/evince version syncing would fix it for Gentoo as well).
Comment 16 Fabio Durán Verdugo 2011-03-01 16:43:09 UTC
*** Bug 643600 has been marked as a duplicate of this bug. ***
Comment 17 Fabio Durán Verdugo 2011-03-17 20:56:06 UTC
*** Bug 645055 has been marked as a duplicate of this bug. ***
Comment 18 Akhil Laddha 2011-03-28 01:00:22 UTC
*** Bug 645823 has been marked as a duplicate of this bug. ***
Comment 19 Akhil Laddha 2011-03-31 00:24:31 UTC
*** Bug 646265 has been marked as a duplicate of this bug. ***
Comment 20 André Klapper 2011-04-11 00:32:32 UTC
*** Bug 647376 has been marked as a duplicate of this bug. ***
Comment 21 André Klapper 2011-04-11 00:33:10 UTC
*** Bug 642224 has been marked as a duplicate of this bug. ***