Package: gthumb
Version: 3:3.0.1-2
Severity: normal

Dear Maintainer,

If one opens a folder with sufficiently large photos
(which take some time to render), open one of them,
then roll the mouse button and quickly press close
on gthumb window, gthumb crashes.

I guess this is because the gth_main_finalize() function
in gth-main.c is not thread-safe. The crash occurs when executing

_g_object_unref (gth_main->priv->extension_manager);

while another thread is still rendering the image
in _cairo_image_surface_create_from_jpeg().

Attached is sample gdb log.



-- System Information:
Debian Release: 7.1
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages gthumb depends on:
ii  gsettings-desktop-schemas        3.4.2-3
ii  gthumb-data                      3:3.0.1-2
ii  libatk1.0-0                      2.4.0-2
ii  libc6                            2.13-38+deb7u4
ii  libcairo-gobject2                1.12.2-3
ii  libcairo2                        1.12.2-3
ii  libexiv2-12                      0.23-1
ii  libgcc1                          1:4.7.2-5
ii  libgdk-pixbuf2.0-0               2.26.1-1
ii  libglib2.0-0                     2.33.12+really2.32.4-5
ii  libgnome-keyring0                3.4.1-1
ii  libgstreamer-plugins-base0.10-0  0.10.36-1.1
ii  libgstreamer0.10-0               0.10.36-1.2
ii  libgtk-3-0                       3.4.2-7
ii  libjpeg8                         8d-1+deb7u1
ii  libpango1.0-0                    1.30.0-1
ii  libpng12-0                       1.2.49-1
ii  librsvg2-2                       2.36.1-2
ii  libsoup-gnome2.4-1               2.38.1-3
ii  libsoup2.4-1                     2.38.1-3
ii  libstdc++6                       4.7.2-5
ii  libtiff4                         3.9.6-11
ii  libxml2                          2.8.0+dfsg1-7+wheezy1
ii  zlib1g                           1:1.2.7.dfsg-13

Versions of packages gthumb recommends:
ii  bison                   1:2.5.dfsg-2.1
ii  flex                    2.5.35-10.1
pn  gstreamer0.10-gnomevfs  <none>
pn  gvfs-bin                <none>

gthumb suggests no packages.

-- no debconf information
Breakpoint 2, gth_main_finalize (object=0x5555558f6400) at gth-main.c:148
148                     _g_object_unref (gth_main->priv->extension_manager);

(gdb) info threads
  Id   Target Id         Frame 
  6    Thread 0x7fffd8a49700 (LWP 4361) "pool" 
pthread_cond_timedwait@@GLIBC_2.3.2 () at 
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
  5    Thread 0x7fffe553c700 (LWP 4360) "pool" 0x00007fffeed5846a in 
jpeg_idct_16x8 () from /usr/lib/x86_64-linux-gnu/libjpeg.so.8
  3    Thread 0x7fffefb89700 (LWP 4358) "dconf worker" 0x00007ffff4e1d223 in 
*__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:87
  2    Thread 0x7ffff0593700 (LWP 4357) "gdbus" 0x00007ffff4e1d223 in 
*__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:87
* 1    Thread 0x7ffff7fce920 (LWP 4353) "gthumb" gth_main_finalize 
(object=0x5555558f6400) at gth-main.c:148

(gdb) thread 5
[Switching to thread 5 (Thread 0x7fffe553c700 (LWP 4360))]
#0  0x00007fffeed5846a in jpeg_idct_16x8 () from 
/usr/lib/x86_64-linux-gnu/libjpeg.so.8

(gdb) bt
#0  0x00007fffeed5846a in jpeg_idct_16x8 () from 
/usr/lib/x86_64-linux-gnu/libjpeg.so.8
#1  0x00007fffeed42165 in ?? () from /usr/lib/x86_64-linux-gnu/libjpeg.so.8
#2  0x00007fffeed47252 in ?? () from /usr/lib/x86_64-linux-gnu/libjpeg.so.8
#3  0x00007fffeed3f990 in jpeg_read_scanlines () from 
/usr/lib/x86_64-linux-gnu/libjpeg.so.8
#4  0x00007fffeef80e93 in _cairo_image_surface_create_from_jpeg 
(file_data=0x555555916d60, requested_size=-1, original_width=0x7fffe553bbd8, 
original_height=0x7fffe553bbdc, 
    user_data=0x0, cancellable=0x55555595eca0, error=0x7fffe553bbe0) at 
cairo-io-jpeg.c:389
#5  0x00005555555ef6ee in load_pixbuf_thread (result=0x555555cb62e0, 
object=0x55555591c080, cancellable=0x55555595eca0) at gth-image-loader.c:196
#6  0x00007ffff604641e in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#7  0x00007ffff60357ae in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#8  0x00007ffff55e2742 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007ffff55e1f45 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff50ddb50 in start_thread (arg=<optimized out>) at 
pthread_create.c:304
#11 0x00007ffff4e27e6d in clone () at 
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

(gdb) thread 1
[Switching to thread 1 (Thread 0x7ffff7fce920 (LWP 4353))]
#0  gth_main_finalize (object=0x5555558f6400) at gth-main.c:148
148                     _g_object_unref (gth_main->priv->extension_manager);

(gdb) bt
#0  gth_main_finalize (object=0x5555558f6400) at gth-main.c:148
#1  0x00007ffff5883638 in g_object_unref () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#2  0x00005555556011b9 in gth_main_release () at gth-main.c:200
#3  0x000055555562cc33 in main (argc=1, argv=0x7fffffffe6e8) at main.c:594

(gdb) next

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe553c700 (LWP 4360)]
0x00007fffeef80f98 in _cairo_image_surface_create_from_jpeg 
(file_data=0x555555916d60, requested_size=-1, original_width=0x7fffe553bbd8, 
original_height=0x7fffe553bbdc, 
    user_data=0x0, cancellable=0x55555595eca0, error=0x7fffe553bbe0) at 
cairo-io-jpeg.c:402

Reply via email to