Dear Maintainer,
Steps to reproduce:
* open gthumb
* double click on a photo
* open the "modify file" toolbar
* double click on the "rotate to the right" button
Expected outcome:
the photo is rotated by 180°
Actual outcome:
gthumb segfaults.
gdb is unable to print the whole backtrace with debug symbols (it hangs, using
100% of a CPU forever) so I put here both the backtrace without debug symbols
of coredumpctl debug and the truncated backtrace by gdb:
Signal: 11 (SEGV)
Timestamp: Sun 2019-12-22 18:57:30 CET (10s ago)
Command Line: gthumb
Executable: /usr/bin/gthumb
Control Group: /user.slice/user-1000.slice/user@1000.service/gnome-terminal-
server.service
Unit: user@1000.service
User Unit: gnome-terminal-server.service
Slice: user-1000.slice
Owner UID: 1000 (plectrude)
Boot ID: d283f182437547d9bb59f2fd1b4cf745
Machine ID: ca9798c5968d4333b3dd9b9d95d01001
Hostname: Mouah-PC
Storage:
/var/lib/systemd/coredump/core.gthumb.1000.d283f182437547d9bb59f2fd1b4cf745.9466.1577037450000000000000.lz4
Message: Process 9466 (gthumb) of user 1000 dumped core.
Stack trace of thread 9466:
#0 0x00007fc47d80a310 g_signal_emit_valist
(libgobject-2.0.so.0 + 0x2f310)
#1 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#2 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#3 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#4 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#5 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#6 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#7 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#8 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#9 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#10 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#11 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#12 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#13 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#14 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#15 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#16 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#17 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#18 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#19 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#20 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#21 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#22 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#23 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#24 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#25 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#26 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#27 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#28 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#29 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#30 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#31 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#32 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#33 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#34 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#35 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#36 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#37 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#38 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#39 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#40 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#41 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#42 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#43 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#44 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#45 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#46 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#47 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#48 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#49 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#50 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#51 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#52 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#53 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#54 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#55 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#56 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#57 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#58 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#59 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
#60 0x00007fc47d80b18f g_signal_emit_valist
(libgobject-2.0.so.0 + 0x3018f)
#61 0x00007fc47d80b81f g_signal_emit (libgobject-2.0.so.0 +
0x3081f)
#62 0x00007fc47d7eedc4 g_closure_invoke (libgobject-2.0.so.0 +
0x13dc4)
#63 0x00007fc47d8024d4 signal_emit_unlocked_R
(libgobject-2.0.so.0 + 0x274d4)
Stack trace of thread 9467:
#0 0x00007fc47c9dbd0f __GI___poll (libc.so.6 + 0xefd0f)
#1 0x00007fc47da5f09e g_main_context_poll (libglib-2.0.so.0 +
0x5009e)
#2 0x00007fc47da5f1bf g_main_context_iteration
(libglib-2.0.so.0 + 0x501bf)
#3 0x00007fc47da5f211 glib_worker_main (libglib-2.0.so.0 +
0x50211)
#4 0x00007fc47da87d0d g_thread_proxy (libglib-2.0.so.0 +
0x78d0d)
#5 0x00007fc47cab6fb7 start_thread (libpthread.so.0 + 0x8fb7)
#6 0x00007fc47c9e62cf __clone (libc.so.6 + 0xfa2cf)
Stack trace of thread 9468:
#0 0x00007fc47c9dbd0f __GI___poll (libc.so.6 + 0xefd0f)
#1 0x00007fc47da5f09e g_main_context_poll (libglib-2.0.so.0 +
0x5009e)
#2 0x00007fc47da5f403 g_main_loop_run (libglib-2.0.so.0 +
0x50403)
#3 0x00007fc47d94a8f6 gdbus_shared_thread_func
(libgio-2.0.so.0 + 0x1138f6)
#4 0x00007fc47da87d0d g_thread_proxy (libglib-2.0.so.0 +
0x78d0d)
#5 0x00007fc47cab6fb7 start_thread (libpthread.so.0 + 0x8fb7)
#6 0x00007fc47c9e62cf __clone (libc.so.6 + 0xfa2cf)
Stack trace of thread 9470:
#0 0x00007fc47c9dbd0f __GI___poll (libc.so.6 + 0xefd0f)
#1 0x00007fc47da5f09e g_main_context_poll (libglib-2.0.so.0 +
0x5009e)
#2 0x00007fc47da5f1bf g_main_context_iteration
(libglib-2.0.so.0 + 0x501bf)
#3 0x00007fc4790b4c0d n/a (libdconfsettings.so + 0x9c0d)
#4 0x00007fc47da87d0d g_thread_proxy (libglib-2.0.so.0 +
0x78d0d)
#5 0x00007fc47cab6fb7 start_thread (libpthread.so.0 + 0x8fb7)
#6 0x00007fc47c9e62cf __clone (libc.so.6 + 0xfa2cf)
Stack trace of thread 9472:
#0 0x00007fc47c9901b3 __memset_sse2_unaligned_erms (libc.so.6
+ 0xa41b3)
#1 0x00007fc47c9738f2 __libc_calloc (libc.so.6 + 0x878f2)
#2 0x00007fc47b74ca02 create_bits (libpixman-1.so.0 + 0x19a02)
#3 0x00007fc47b74caac create_bits_image_internal
(libpixman-1.so.0 + 0x19aac)
#4 0x00007fc47ce9c07f
_cairo_image_surface_create_with_pixman_format (libcairo.so.2 + 0x3907f)
#5 0x000055f61a702fc6 _cairo_image_surface_create (gthumb +
0x3cfc6)
#6 0x00007fc478038b4d _cairo_image_surface_create_from_tiff
(libcairo_io.so + 0x14b4d)
#7 0x000055f61a74e9c8 load_image_thread (gthumb + 0x889c8)
#8 0x00007fc47d8e3bae g_task_thread_pool_thread
(libgio-2.0.so.0 + 0xacbae)
#9 0x00007fc47da88404 g_thread_pool_thread_proxy
(libglib-2.0.so.0 + 0x79404)
#10 0x00007fc47da87d0d g_thread_proxy (libglib-2.0.so.0 +
0x78d0d)
#11 0x00007fc47cab6fb7 start_thread (libpthread.so.0 + 0x8fb7)
#12 0x00007fc47c9e62cf __clone (libc.so.6 + 0xfa2cf)
Thread 5 (Thread 0x7fc45ff12700 (LWP 9472)):
#0 0x00007fc47c9901b3 in __memset_sse2_unaligned_erms () at
../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:214
#1 0x00007fc47c9738f2 in __libc_calloc (n=<optimized out>,
elem_size=elem_size@entry=1) at malloc.c:3498
#2 0x00007fc47b74ca02 in create_bits (clear=1, rowstride_bytes=<synthetic
pointer>, height=1375, width=2419, format=PIXMAN_a8r8g8b8) at
../../pixman/pixman-bits-image.c:935
#3 0x00007fc47b74ca02 in _pixman_bits_image_init
(image=image@entry=0x7fc458024730, format=format@entry=PIXMAN_a8r8g8b8,
width=width@entry=2419, height=height@entry=1375, bits=bits@entry=0x0,
rowstride=rowstride@entry=1073741824, clear=1) at ../../pixman/pixman-bits-
image.c:958
#4 0x00007fc47b74caac in create_bits_image_internal
(format=format@entry=PIXMAN_a8r8g8b8, width=2419, height=1375,
bits=bits@entry=0x0, rowstride_bytes=-1, clear=clear@entry=1) at
../../pixman/pixman-bits-image.c:1008
#5 0x00007fc47b74cb2b in pixman_image_create_bits
(format=format@entry=PIXMAN_a8r8g8b8, width=<optimized out>, height=<optimized
out>, bits=bits@entry=0x0, rowstride_bytes=<optimized out>) at
../../pixman/pixman-bits-image.c:1027
#6 0x00007fc47ce9c07f in _cairo_image_surface_create_with_pixman_format
(data=0x0, pixman_format=PIXMAN_a8r8g8b8, width=<optimized out>,
height=<optimized out>, stride=<optimized out>) at ../../../../src/cairo-image-
surface.c:349
#7 0x000055f61a702fc6 in _cairo_image_surface_create
(format=format@entry=CAIRO_FORMAT_ARGB32, width=<optimized out>,
height=<optimized out>) at ../gthumb/cairo-utils.c:293
#8 0x00007fc478038b4d in _cairo_image_surface_create_from_tiff
(istream=<optimized out>, file_data=<optimized out>, requested_size=-1,
original_width_p=0x7fc45ff11b0c, original_height_p=0x7fc45ff11b10,
loaded_original_p=0x7fc45ff11b14, user_data=0x0, cancellable=0x55f61d7f3ee0
[GCancellable], error=0x7fc45ff11b20) at ../extensions/cairo_io/cairo-image-
surface-tiff.c:241
#9 0x000055f61a74e9c8 in load_image_thread (task=0x55f61d7f2260 [GTask],
source_object=<optimized out>, task_data=<optimized out>,
cancellable=0x55f61d7f3ee0 [GCancellable]) at ../gthumb/gth-image-loader.c:241
#10 0x00007fc47d8e3bae in g_task_thread_pool_thread
(thread_data=0x55f61d7f2260, pool_data=<optimized out>) at
../../../gio/gtask.c:1410
#11 0x00007fc47da88404 in g_thread_pool_thread_proxy (data=<optimized out>) at
../../../glib/gthreadpool.c:308
#12 0x00007fc47da87d0d in g_thread_proxy (data=0x55f61d3fb770) at
../../../glib/gthread.c:805
#13 0x00007fc47cab6fb7 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#14 0x00007fc47c9e62cf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7fc478843700 (LWP 9470)):
#0 0x00007fc47c9dbd0f in __GI___poll (fds=0x55f61c865fc0, nfds=1, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fc47da5f09e in g_main_context_poll (priority=<optimized out>,
n_fds=1, fds=0x55f61c865fc0, timeout=<optimized out>, context=0x55f61c8c9e70)
at ../../../glib/gmain.c:4216
#2 0x00007fc47da5f09e in g_main_context_iterate
(context=context@entry=0x55f61c8c9e70, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3912
#3 0x00007fc47da5f1bf in g_main_context_iteration (context=0x55f61c8c9e70,
may_block=1) at ../../../glib/gmain.c:3978
#4 0x00007fc4790b4c0d in () at /usr/lib/x86_64-linux-
gnu/gio/modules/libdconfsettings.so
#5 0x00007fc47da87d0d in g_thread_proxy (data=0x55f61ceed990) at
../../../glib/gthread.c:805
#6 0x00007fc47cab6fb7 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#7 0x00007fc47c9e62cf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 3 (Thread 0x7fc479905700 (LWP 9468)):
#0 0x00007fc47c9dbd0f in __GI___poll (fds=0x7fc46c013280, nfds=3, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fc47da5f09e in g_main_context_poll (priority=<optimized out>,
n_fds=3, fds=0x7fc46c013280, timeout=<optimized out>, context=0x55f61c7e8a30)
at ../../../glib/gmain.c:4216
#2 0x00007fc47da5f09e in g_main_context_iterate (context=0x55f61c7e8a30,
block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at
../../../glib/gmain.c:3912
#3 0x00007fc47da5f403 in g_main_loop_run (loop=0x55f61c7e8b20) at
../../../glib/gmain.c:4111
#4 0x00007fc47d94a8f6 in gdbus_shared_thread_func (user_data=0x55f61c7e8a00)
at ../../../gio/gdbusprivate.c:279
#5 0x00007fc47da87d0d in g_thread_proxy (data=0x55f61c7886d0) at
../../../glib/gthread.c:805
#6 0x00007fc47cab6fb7 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#7 0x00007fc47c9e62cf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
[mThread 2 (Thread 0x7fc47a516700 (LWP 9467)):
#0 0x00007fc47c9dbd0f in __GI___poll (fds=0x55f61c710270, nfds=2,
timeout=2999) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007fc47da5f09e in g_main_context_poll (priority=<optimized out>,
n_fds=2, fds=0x55f61c710270, timeout=<optimized out>, context=0x55f61c711800)
at ../../../glib/gmain.c:4216
#2 0x00007fc47da5f09e in g_main_context_iterate
(context=context@entry=0x55f61c711800, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:3912
#3 0x00007fc47da5f1bf in g_main_context_iteration (context=0x55f61c711800,
may_block=may_block@entry=1) at ../../../glib/gmain.c:3978
#4 0x00007fc47da5f211 in glib_worker_main (data=<optimized out>) at
../../../glib/gmain.c:5858
#5 0x00007fc47da87d0d in g_thread_proxy (data=0x55f61c711c00) at
../../../glib/gthread.c:805
#6 0x00007fc47cab6fb7 in start_thread (arg=<optimized out>) at
pthread_create.c:486
#7 0x00007fc47c9e62cf in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Quit
Also affects the version in testing (3.6.2-4).
Clicking on the "rotate to the right" twice but slowly works fine.