Bug#657713: nautilus: deadlock while thumbnailing certain files

Simon McVittie smcv at debian.org
Sat Jan 28 10:01:08 UTC 2012


Package: nautilus
Version: 2.30.1-2squeeze1
Severity: normal

Nautilus frequently stops responding when browsing a particular
directory, which contains:

* 4 0.5 - 1.8 MiB TIFF files, one of which has been converted to PNG
  (1.1 MiB) and embedded in a SVG file (4 KiB)
* 5 0.5 - 2.2 MiB PDF files
* a 4.3 MiB OpenOffice document (ODT)

The backtrace suggests that this is some sort of deadlock in the
thumbnailing code. Both threads appear to be trying to acquire the same
lock: perhaps it wasn't previously released correctly?

This can be worked around by switching off thumbnailing.

I have taken a copy of the offending directory, and a core dump at the
time of the deadlock. Here are the backtraces:

(gdb) set pagination off
Current language:  auto
The current source language is "auto; currently asm".
(gdb) thread apply all bt

Thread 2 (Thread 0x7f40c780c700 (LWP 32668)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x00007f40d17ed0e9 in _L_lock_953 () from /lib/libpthread.so.0
#2  0x00007f40d17ecf0b in __pthread_mutex_lock (mutex=0x7f40d0aed9a8) at
pthread_mutex_lock.c:61
#3  0x00007f40d08d95a9 in _gdk_pixbuf_lock (image_module=<value
optimized out>) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-io.c:119
#4  0x00007f40d08dcde5 in gdk_pixbuf_loader_load_module
(loader=0x226e180, image_type=<value optimized out>, error=0x0) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-loader.c:379
#5  0x00007f40d08dd8b3 in gdk_pixbuf_loader_eat_header_write
(loader=0x226e180, buf=0x7f40c7206010 "II*", count=1788584, error=0x0)
at /scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-loader.c:417
#6  IA__gdk_pixbuf_loader_write (loader=0x226e180, buf=0x7f40c7206010
"II*", count=1788584, error=0x0) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-loader.c:463
#7  0x00007f40bf62a99e in rsvg_pixbuf_new_from_href (href=0x1b7d480
"file:///home/helen/Documents/Uni/MRes/fluorescence%20microscopy%20practical/wf_cy2.tif",
base_uri=<value optimized out>, error=0x0) at rsvg-image.c:394
#8  0x00007f40bf62ab80 in rsvg_node_image_set_atts (self=0x23de6d0,
ctx=0x7f40b000e5a0, atts=0x22290a0) at rsvg-image.c:532
#9  0x00007f40bf646e8f in rsvg_standard_element_start
(ctx=0x7f40b000e5a0, name=0x207d480 "image", atts=0x22290a0) at
rsvg-base.c:268
#10 0x00007f40bf64784b in rsvg_start_element (data=0x7f40b000e5a0,
name=0x207d480 "image", atts=<value optimized out>) at rsvg-base.c:663
#11 0x00007f40cf2a749b in xmlParseStartTag__internal_alias
(ctxt=0x2123930) at ../../parser.c:8285
#12 0x00007f40cf2ad653 in xmlParseTryOrFinish (ctxt=0x2123930,
terminate=0) at ../../parser.c:10968
#13 0x00007f40cf2ae2ab in xmlParseChunk__internal_alias (ctxt=0x2123930,
chunk=0x7f40c780af40 "     orient=\"auto\"\n       refY=\"0.0\"\n
refX=\"0.0\"\n       id=\"StopL\"\n       style=\"overflow:visible\">\n
     <path\n         id=\"path3765\"\n         d=\"M 0.0,5.65 L
0.0,-5.65\"\n         style=\"fill:no"..., size=2884, terminate=0) at
../../parser.c:11739
#14 0x00007f40bf645ba2 in rsvg_handle_write_impl (handle=0x7f40b000e5a0,
buf=0x7f40c780af40 "     orient=\"auto\"\n       refY=\"0.0\"\n
refX=\"0.0\"\n       id=\"StopL\"\n       style=\"overflow:visible\">\n
     <path\n         id=\"path3765\"\n         d=\"M 0.0,5.65 L
0.0,-5.65\"\n         style=\"fill:no"..., count=2884, error=0x0) at
rsvg-base.c:1128
#15 0x00007f40bf855d91 in gdk_pixbuf__svg_image_load_increment
(data=0x23ec900, buf=0x7f40c780af40 "     orient=\"auto\"\n
refY=\"0.0\"\n       refX=\"0.0\"\n       id=\"StopL\"\n
style=\"overflow:visible\">\n      <path\n         id=\"path3765\"\n
     d=\"M 0.0,5.65 L 0.0,-5.65\"\n         style=\"fill:no"...,
size=3501119848, error=0x0) at io-svg.c:128
#16 0x00007f40d08dd81f in IA__gdk_pixbuf_loader_write (loader=0x2244d20,
buf=0x7f40c780af40 "     orient=\"auto\"\n       refY=\"0.0\"\n
refX=\"0.0\"\n       id=\"StopL\"\n       style=\"overflow:visible\">\n
     <path\n         id=\"path3765\"\n         d=\"M 0.0,5.65 L
0.0,-5.65\"\n         style=\"fill:no"..., count=2884, error=0x0) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-loader.c:473
#17 0x00007f40d1e45fe2 in ?? () from /usr/lib/libgnome-desktop-2.so.17
#18 0x00007f40d1e4635c in
gnome_desktop_thumbnail_factory_generate_thumbnail () from
/usr/lib/libgnome-desktop-2.so.17
#19 0x0000000000501ca1 in thumbnail_thread_start (data=<value optimized
out>) at nautilus-thumbnails.c:1000
#20 0x00007f40d17ea8ba in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#21 0x00007f40ce2b802d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#22 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f40d2a79980 (LWP 5110)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x00007f40d17ed0e9 in _L_lock_953 () from /lib/libpthread.so.0
#2  0x00007f40d17ecf0b in __pthread_mutex_lock (mutex=0x7f40d0aed9a8) at
pthread_mutex_lock.c:61
#3  0x00007f40d08d95a9 in _gdk_pixbuf_lock (image_module=<value
optimized out>) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-io.c:119
#4  0x00007f40d08dcde5 in gdk_pixbuf_loader_load_module
(loader=0x1c0e520, image_type=<value optimized out>,
error=0x7f40c0036448) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-loader.c:379
#5  0x00007f40d08dd8b3 in gdk_pixbuf_loader_eat_header_write
(loader=0x1c0e520, buf=0x7fff6ba5ea80 "<?xml version=\"1.0\"
encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC
\"-//W3C//DTD SVG
20010904//EN\"\n\"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd\">\n<!--
Created with Sodipodi (\"http"..., count=65536, error=0x7f40c0036448) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-loader.c:417
#6  IA__gdk_pixbuf_loader_write (loader=0x1c0e520, buf=0x7fff6ba5ea80
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE
svg PUBLIC \"-//W3C//DTD SVG
20010904//EN\"\n\"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd\">\n<!--
Created with Sodipodi (\"http"..., count=65536, error=0x7f40c0036448) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-loader.c:463
#7  0x00007f40d08da79f in load_from_stream (loader=0x1c0e520,
stream=0x1b83f00, cancellable=0x0, error=0x7f40c0036448) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-io.c:1533
#8  0x00007f40d08da8f1 in IA__gdk_pixbuf_new_from_stream_at_scale
(stream=0x1b83f00, width=96, height=96, preserve_aspect_ratio=<value
optimized out>, cancellable=0x0, error=0x7f40c0036448) at
/scratch/build-area/gtk+2.0-2.20.1/gdk-pixbuf/gdk-pixbuf-io.c:1613
#9  0x00007f40d10c83cc in icon_info_ensure_scale_and_pixbuf
(icon_info=0x7f40c0036400, scale_only=<value optimized out>) at
/scratch/build-area/gtk+2.0-2.20.1/gtk/gtkicontheme.c:2925
#10 0x00007f40d10c8af2 in IA__gtk_icon_info_load_icon
(icon_info=0x7f40c0036400, error=0x0) at
/scratch/build-area/gtk+2.0-2.20.1/gtk/gtkicontheme.c:3066
#11 0x00000000004eeeae in nautilus_icon_info_new_for_icon_info
(icon=<value optimized out>, size=96) at nautilus-icon-info.c:144
#12 nautilus_icon_info_lookup (icon=<value optimized out>, size=96) at
nautilus-icon-info.c:405
#13 0x00000000004d4306 in nautilus_file_get_icon (file=<value optimized
out>, size=96, flags=9) at nautilus-file.c:4248
#14 0x00000000004d45ce in nautilus_file_get_icon_pixbuf
(file=0x7f40d0aed9a8, size=128, force_size=1, flags=4294967295) at
nautilus-file.c:4269
#15 0x000000000045ccec in update_icon (sidebar_title=0x198d8c0) at
nautilus-sidebar-title.c:311
#16 0x000000000045d1a6 in update_all (sidebar_title=0x7f40d0aed9a8) at
nautilus-sidebar-title.c:576
#17 0x000000000043f08c in selection_changed_callback (window=<value
optimized out>, panel=0x1f9a700) at nautilus-information-panel.c:1132
#18 0x00007f40cfedc47e in IA__g_closure_invoke (closure=0x20eb7d0,
return_value=0x0, n_param_values=1, param_values=0x7f40b008ff80,
invocation_hint=0x7fff6ba6ee00) at
/scratch/build-area/glib2.0-2.24.2/gobject/gclosure.c:767
#19 0x00007f40cfef23f7 in signal_emit_unlocked_R (node=0x199d540,
detail=<value optimized out>, instance=<value optimized out>,
emission_return=<value optimized out>, instance_and_params=<value
optimized out>) at /scratch/build-area/glib2.0-2.24.2/gobject/gsignal.c:3248
#20 0x00007f40cfef3a76 in IA__g_signal_emit_valist (instance=0x1cf8280,
signal_id=<value optimized out>, detail=0, var_args=0x7fff6ba6f010) at
/scratch/build-area/glib2.0-2.24.2/gobject/gsignal.c:2981
#21 0x00007f40cfef3d93 in IA__g_signal_emit_by_name (instance=0x1cf8280,
detailed_signal=0x57e508 "selection_changed") at
/scratch/build-area/glib2.0-2.24.2/gobject/gsignal.c:3075
#22 0x0000000000471683 in fm_directory_view_send_selection_change
(view=0x2070380) at fm-directory-view.c:2313
#23 0x00000000004760ab in display_selection_info_idle_callback
(data=<value optimized out>) at fm-directory-view.c:2916
#24 0x00007f40cf5ec6f2 in g_main_dispatch (context=0x18d91b0) at
/scratch/build-area/glib2.0-2.24.2/glib/gmain.c:1960
#25 IA__g_main_context_dispatch (context=0x18d91b0) at
/scratch/build-area/glib2.0-2.24.2/glib/gmain.c:2513
#26 0x00007f40cf5f0568 in g_main_context_iterate (context=0x18d91b0,
block=<value optimized out>, dispatch=<value optimized out>, self=<value
optimized out>) at /scratch/build-area/glib2.0-2.24.2/glib/gmain.c:2591
#27 0x00007f40cf5f0a75 in IA__g_main_loop_run (loop=0x1a96db0) at
/scratch/build-area/glib2.0-2.24.2/glib/gmain.c:2799
#28 0x00007f40d10f76b7 in IA__gtk_main () at
/scratch/build-area/gtk+2.0-2.20.1/gtk/gtkmain.c:1219
#29 0x0000000000442f42 in main (argc=1, argv=0x7fff6ba6f6c8) at
nautilus-main.c:544
(gdb)
-- System Information:
Debian Release: 6.0.3
  APT prefers stable
  APT policy: (900, 'stable'), (500, 'stable-updates')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages nautilus depends on:
ii  desktop-file-utils 0.15-2                Utilities for .desktop files
ii  gvfs               1.6.4-3               userspace virtual
filesystem - ser
ii  libatk1.0-0        1.30.0-1              The ATK accessibility toolkit
ii  libc6              2.11.2-10             Embedded GNU C Library:
Shared lib
ii  libcairo2          1.10.2-6~bpo60+1      The Cairo 2D vector
graphics libra
ii  libdbus-glib-1-2   0.88-2.1              simple interprocess
messaging syst
ii  libexempi3         2.1.1-1               library to parse XMP
metadata (Lib
ii  libexif12          0.6.19-1              library to parse EXIF files
ii  libgail18          2.20.1-2              GNOME Accessibility
Implementation
ii  libgconf2-4        2.28.1-6              GNOME configuration
database syste
ii  libglib2.0-0       2.24.2-1              The GLib library of C routines
ii  libglib2.0-data    2.24.2-1              Common files for GLib library
ii  libgnome-desktop-2 2.30.2-2              Utility library for loading
.deskt
ii  libgtk2.0-0        2.20.1-2              The GTK+ graphical user
interface ii  libice6            2:1.0.6-2             X11 Inter-Client
Exchange library
ii  libnautilus-extens 2.30.1-2squeeze1      libraries for nautilus
components ii  libpango1.0-0      1.28.3-1+squeeze2     Layout and
rendering of internatio
ii  libselinux1        2.0.96-1              SELinux runtime shared
libraries
ii  libsm6             2:1.1.1-1             X11 Session Management library
ii  libunique-1.0-0    1.1.6-1.1             Library for writing single
instanc
ii  libx11-6           2:1.3.3-4             X11 client-side library
ii  libxml2            2.7.8.dfsg-2+squeeze1 GNOME XML library
ii  libxrender1        1:0.9.6-1             X Rendering Extension
client libra
ii  nautilus-data      2.30.1-2squeeze1      data files for nautilus
ii  shared-mime-info   0.71-4                FreeDesktop.org shared MIME
databa

Versions of packages nautilus recommends:
ii  app-install-d 2010.11.17                 Application Installer Data
Files
ii  brasero       2.30.3-2                   CD/DVD burning application
for GNO
ii  consolekit    0.4.1-4                    framework for defining and
trackin
ii  desktop-base  6.0.5squeeze1              common files for the Debian
Deskto
ii  eject         2.1.5+deb1+cvs20081104-7.1 ejects CDs and operates
CD-Changer
ii  gvfs-backends 1.6.4-3                    userspace virtual
filesystem - bac
ii  librsvg2-comm 2.26.3-1                   SAX-based renderer library
for SVG
ii  synaptic      0.70~pre1+b1               Graphical package manager

Versions of packages nautilus suggests:
ii  eog                    2.30.2-1          Eye of GNOME graphics
viewer progr
ii  evince [pdf-viewer]    2.30.3-2+squeeze1 Document (PostScript, PDF)
viewer
ii  totem                  2.30.2-6          A simple media player for
the GNOM
pn  tracker                <none>            (no description available)
ii  vlc [mp3-decoder]      1.1.3-1squeeze6   multimedia player and streamer
ii  vlc-nox [mp3-decoder]  1.1.3-1squeeze6   multimedia player and
streamer (wi
ii  xdg-user-dirs          0.13-2            tool to manage well known
user dir

-- no debconf information






More information about the pkg-gnome-maintainers mailing list