Crash when is opened pdf modified from outside
Seems evince detects changes to actually opened pdf and reloads it. This sometimes causes crash. To reproduce:
- Open pdf file in evince, lets call it test.pdf
- Copy test.pdf to test_copy.pdf
- Repeatedly copy test_copy.pdf to test.pdf for example by using
while true; do cp test_copy.pdf test.pdf; done
Evince crashes:
some font thing failed
(evince:596844): Poppler-CRITICAL **: 20:33:17.746: void poppler_page_get_size(PopplerPage*, double*, double*): assertion 'POPPLER_IS_PAGE (page)' failed
(evince:596844): GLib-GObject-CRITICAL **: 20:33:17.746: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
(evince:596844): Poppler-CRITICAL **: 20:33:17.973: void poppler_page_get_size(PopplerPage*, double*, double*): assertion 'POPPLER_IS_PAGE (page)' failed
(evince:596844): GLib-GObject-CRITICAL **: 20:33:17.973: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
(evince:596844): GLib-GObject-CRITICAL **: 20:33:17.974: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
(evince:596844): GLib-GObject-CRITICAL **: 20:33:17.974: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
** (evince:596844): CRITICAL **: 20:33:17.974: void pdf_document_get_page_size(EvDocument*, EvPage*, double*, double*): assertion 'POPPLER_IS_PAGE (page->backend_page)' failed
** (evince:596844): CRITICAL **: 20:33:17.974: char* pdf_document_get_page_label(EvDocument*, EvPage*): assertion 'POPPLER_IS_PAGE (page->backend_page)' failed
(evince:596844): GLib-GObject-CRITICAL **: 20:33:17.974: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
some font thing failed
some font thing failed
some font thing failed
some font thing failed
some font thing failed
some font thing failed
some font thing failed
(evince:596844): EvinceView-CRITICAL **: 20:33:20.010: ev_page_cache_get_annot_mapping: assertion 'EV_IS_PAGE_CACHE (cache)' failed
(evince:596844): EvinceView-CRITICAL **: 20:33:20.030: ev_page_cache_get_annot_mapping: assertion 'EV_IS_PAGE_CACHE (cache)' failed
(evince:596844): Poppler-CRITICAL **: 20:33:20.480: void poppler_page_get_size(PopplerPage*, double*, double*): assertion 'POPPLER_IS_PAGE (page)' failed
(evince:596844): GLib-GObject-CRITICAL **: 20:33:20.480: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
some font thing failed
some font thing failed
Thread 1 "evince" received signal SIGSEGV, Segmentation fault.
__GI___libc_free (mem=0x20) at malloc.c:3102
3102 malloc.c: No such file or directory.
(gdb) bt
#0 __GI___libc_free (mem=0x20) at malloc.c:3102
#1 0x00007f8fff81c6fb in () at /usr/lib/x86_64-linux-gnu/libevview3.so.3
#2 0x00007f8fff81e837 in () at /usr/lib/x86_64-linux-gnu/libevview3.so.3
#3 0x00007f8fff820270 in () at /usr/lib/x86_64-linux-gnu/libevview3.so.3
#4 0x00007f8fff82795a in () at /usr/lib/x86_64-linux-gnu/libevview3.so.3
#5 0x00007f8fff331d04 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#6 0x00007f8fff11228b in gtk_container_propagate_draw () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#7 0x00007f8fff11235d in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#8 0x00007f8fff2667cd in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#9 0x00007f8fff117601 in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#10 0x00007f8fff11c49c in () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0