FS#34279 - [cairo] often crashes when large images are opened in eog

Attached to Project: Arch Linux
Opened by Anton Eliasson (eliasson) - Tuesday, 12 March 2013, 15:32 GMT
Last edited by Andreas Radke (AndyRTR) - Monday, 18 March 2013, 19:36 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Andreas Radke (AndyRTR)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

This bug is present in cairo version 1.12.10-2, 1.12.12-1 and 1.12.14-3 but not in 1.12.8-2 (or, presumably, earlier versions). It can be reproduced in some different ways depending on who knows what. In this case I opened one picture (12 Mpix, 2 MB) in eog and then pressed End to go to the last picture (5 Mpix, 1 MB) in the current directory. Using the arrow keys to go from the first to the second picture also induces the bug. gdb run with backtrace:

$ LANG=C gdb
GNU gdb (GDB) 7.5.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(gdb) file /usr/bin/eog
Reading symbols from /usr/bin/eog...(no debugging symbols found)...done.
(gdb) run dcim/IMG_2434.JPG
Starting program: /usr/bin/eog dcim/IMG_2434.JPG
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
Traceback (most recent call last):
File "/usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.3400.3-gdb.py", line 9, in <module>
from gobject import register
File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module>
import gdb.backtrace
ImportError: No module named backtrace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffe6c08700 (LWP 2446)]
[New Thread 0x7fffe6407700 (LWP 2447)]
[New Thread 0x7fffe59fb700 (LWP 2448)]
[New Thread 0x7fffe4ff7700 (LWP 2449)]
eog: cairo-mempool.c:160: get_buddy: Assertion `offset + (1 << bits) <= pool->num_blocks' failed.

Program received signal SIGABRT, Aborted.
0x00007ffff3e6a2c5 in raise () from /usr/lib/libc.so.6
(gdb) backtrace
#0 0x00007ffff3e6a2c5 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff3e6b748 in abort () from /usr/lib/libc.so.6
#2 0x00007ffff3e63312 in __assert_fail_base () from /usr/lib/libc.so.6
#3 0x00007ffff3e633c2 in __assert_fail () from /usr/lib/libc.so.6
#4 0x00007ffff56b248b in ?? () from /usr/lib/libcairo.so.2
#5 0x00007ffff56b2514 in ?? () from /usr/lib/libcairo.so.2
#6 0x00007ffff5711cb6 in ?? () from /usr/lib/libcairo.so.2
#7 0x00007ffff5712777 in ?? () from /usr/lib/libcairo.so.2
#8 0x00007ffff570f7d5 in ?? () from /usr/lib/libcairo.so.2
#9 0x00007ffff57084d2 in ?? () from /usr/lib/libcairo.so.2
#10 0x00007ffff56f281b in ?? () from /usr/lib/libcairo.so.2
#11 0x00007ffff56f32fb in ?? () from /usr/lib/libcairo.so.2
#12 0x00007ffff569a0a1 in ?? () from /usr/lib/libcairo.so.2
#13 0x00007ffff56e05a1 in ?? () from /usr/lib/libcairo.so.2
#14 0x00007ffff56a215c in ?? () from /usr/lib/libcairo.so.2
#15 0x00007ffff5694c37 in cairo_paint () from /usr/lib/libcairo.so.2
#16 0x000000000044b16a in ?? ()
#17 0x000000000044e10b in eog_scroll_view_set_image ()
#18 0x00000000004367b0 in ?? ()
#19 0x0000000000437363 in ?? ()
#20 0x00007ffff491a467 in ?? () from /usr/lib/libgobject-2.0.so.0
#21 0x00007ffff4932e66 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#22 0x00007ffff49336b2 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#23 0x00000000004260bc in ?? ()
#24 0x00007ffff465b845 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#25 0x00007ffff465bb78 in ?? () from /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#26 0x00007ffff465bc34 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#27 0x00007ffff5c4b5ec in g_application_run () from /usr/lib/libgio-2.0.so.0
#28 0x000000000041e7e0 in main ()
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) quit

Bug reports and discussions regarding other distributions suggest that this is an upstream issue:

http://ubuntu.5.n6.nabble.com/Not-able-to-view-Images-using-EOG-Gthumb-td5013371.html
https://bugzilla.redhat.com/show_bug.cgi?id=912030
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Monday, 18 March 2013, 19:36 GMT
Reason for closing:  Upstream
Comment by Anton Eliasson (eliasson) - Tuesday, 12 March 2013, 15:37 GMT
I'm using eog version 3.6.2-1 and Arch 64-bit by the way. The original poster in the Ubuntu thread linked has also reproduced this issue in gthumb.
Comment by Andreas Radke (AndyRTR) - Tuesday, 12 March 2013, 15:52 GMT
Upstream report? Other distro reports won't solve this.
Comment by Anton Eliasson (eliasson) - Thursday, 14 March 2013, 17:25 GMT Comment by Anton Eliasson (eliasson) - Monday, 18 March 2013, 19:14 GMT
Fixed upstream: http://lists.cairographics.org/archives/cairo/2013-March/024141.html

Now we wait for a release... Meanwhile, cairo-git from AUR can be used.

Loading...