Bug#851498: g-s-d has an undocumented and unstable tmp-cleaner

Ben Hutchings ben at decadent.org.uk
Sun Jan 15 16:36:36 UTC 2017


Package: gnome-settings-daemon
Version: 3.22.1-1
Severity: grave

I noticed that gnome-settings-daemon regularly crashes and restarts
on my system.

I investigated this with gdb and got the following backtrace:

#0  0x00007f00e6aac261 in _g_log_abort (breakpoint=1) at ././glib/gmessages.c:487
#1  0x00007f00e6aad2b7 in g_log_default_handler (log_domain=0x7f00e6aeed2e "GLib", log_level=6, message=<optimized out>, unused_data=<optimized out>) at ././glib/gmessages.c:2816
#2  0x00007f00e6aad5c4 in g_logv (log_domain=0x7f00e6aeed2e "GLib", log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=args at entry=0x7ffd0faba4c0) at ././glib/gmessages.c:1275
#3  0x00007f00e6aad7cf in g_log (log_domain=log_domain at entry=0x7f00e6aeed2e "GLib", log_level=log_level at entry=G_LOG_LEVEL_ERROR, format=format at entry=0x7f00e6b4eaa0 "Creating pipes for GWakeup: %s\n") at ././glib/gmessages.c:1337
#4  0x00007f00e6aeabf2 in g_wakeup_new () at ././glib/gwakeup.c:161
#5  0x00007f00e6aa4083 in g_main_context_new () at ././glib/gmain.c:656
#6  0x00007f00e708080e in g_dbus_connection_send_message_with_reply_sync (connection=connection at entry=0x769190 [GDBusConnection], message=message at entry=0xb802d0 [GDBusMessage], flags=flags at entry=G_DBUS_SEND_MESSAGE_FLAGS_NONE, timeout_msec=timeout_msec at entry=-1, out_serial=out_serial at entry=0x0, cancellable=cancellable at entry=0x0, error=0x7ffd0faba6a0) at ././gio/gdbusconnection.c:2138
#7  0x00007f00e7080c74 in g_dbus_connection_call_sync_internal (connection=0x769190 [GDBusConnection], bus_name=bus_name at entry=0xaea530 ":1.114", object_path=0xcfb7d0 "/org/gtk/vfs/metadata", interface_name=interface_name at entry=0xb6f440 "org.gtk.vfs.Metadata", method_name=method_name at entry=0x7f00dc269d2a "GetTreeFromDevice", parameters=parameters at entry=0x986f90, reply_type=0xb2cec0, flags=G_DBUS_CALL_FLAGS_NONE, timeout_msec=-1, fd_list=0x0, out_fd_list=0x0, cancellable=0x0, error=0x7ffd0faba880) at ././gio/gdbusconnection.c:5935
#8  0x00007f00e7083025 in g_dbus_connection_call_with_unix_fd_list_sync (connection=<optimized out>, bus_name=bus_name at entry=0xaea530 ":1.114", object_path=<optimized out>, interface_name=interface_name at entry=0xb6f440 "org.gtk.vfs.Metadata", method_name=method_name at entry=0x7f00dc269d2a "GetTreeFromDevice", parameters=parameters at entry=0x986f90, reply_type=0xb2cec0, flags=G_DBUS_CALL_FLAGS_NONE, timeout_msec=-1, fd_list=0x0, out_fd_list=0x0, cancellable=0x0, error=0x7ffd0faba880) at ././gio/gdbusconnection.c:6281
#9  0x00007f00e708cd1d in g_dbus_proxy_call_sync_internal (proxy=0x7f009c011d60 [GVfsMetadataProxy], method_name=<optimized out>, parameters=0x986f90, flags=G_DBUS_CALL_FLAGS_NONE, timeout_msec=<optimized out>, fd_list=fd_list at entry=0x0, out_fd_list=0x0, cancellable=0x0, error=0x7ffd0faba880)
    at ././gio/gdbusproxy.c:2857
#10 0x00007f00e708e0a4 in g_dbus_proxy_call_sync (proxy=<optimized out>, method_name=<optimized out>, parameters=<optimized out>, flags=<optimized out>, timeout_msec=<optimized out>, cancellable=<optimized out>, error=0x7ffd0faba880) at ././gio/gdbusproxy.c:3049
#11 0x00007f00dc267248 in  () at /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
#12 0x00007f00dc2640de in  () at /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
#13 0x00007f00dc24e685 in  () at /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
#14 0x00007f00e70a132a in g_local_file_delete (file=0xba22c0, cancellable=<optimized out>, error=0x0) at ././gio/glocalfile.c:1551
#15 0x00007f00dc47a485 in delete_subdir (source=<optimized out>, res=0xb04c40, user_data=0x924d30) at gsd-disk-space.c:383
#16 0x00007f00e704d4e3 in g_task_return_now (task=0xb04c40 [GTask]) at ././gio/gtask.c:1121
#17 0x00007f00e704d519 in complete_in_idle_cb (task=0xb04c40) at ././gio/gtask.c:1135
#18 0x00007f00e6aa66aa in g_main_dispatch (context=0x750600) at ././glib/gmain.c:3203
#19 0x00007f00e6aa66aa in g_main_context_dispatch (context=context at entry=0x750600) at ././glib/gmain.c:3856
#20 0x00007f00e6aa6a60 in g_main_context_iterate (context=0x750600, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at ././glib/gmain.c:3929
#21 0x00007f00e6aa6d82 in g_main_loop_run (loop=0x795c60) at ././glib/gmain.c:4125
#22 0x00007f00e787ccc5 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00000000004036c0 in main ()

Examining frame #14:

(gdb) print *local
$1 = {parent_instance = {g_type_instance = {g_class = 0x7f00d000be10}, 
    ref_count = 2, qdata = 0x0}, 
  filename = 0xc5dfa0 "/var/tmp/0QI_OkZMk7/linux-3.16.36/debian/linux-image-3.16.0-4-m68k.templates"}

So gnome-settings-daemon is cleaning up /var/tmp.  That is a useful
function, but this behaviour is not documented anywhere.  It is *not*
normal for /var/tmp to be cleaned up automatically so this is a bug.

Now, why is it crashing?  The log format string (which never actually
makes it into the log - that seems a bug in _g_log_abort()) - is
"Creating pipes for GWakeup: %s".  The only likely reason for pipe
creation failure is a limit on number of FDs.  Sure enough, this
process has 1024 FDs open, mostly for directories under /var/tmp.
That looks like an FD leak.

Ben.

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages gnome-settings-daemon depends on:
ii  dconf-gsettings-backend [gsettings-backend]  0.26.0-2
ii  gsettings-desktop-schemas                    3.22.0-1
ii  libasound2                                   1.1.2-1
ii  libc6                                        2.24-8
ii  libcairo2                                    1.14.8-1
ii  libcanberra-gtk3-0                           0.30-3
ii  libcanberra0                                 0.30-3
ii  libcolord2                                   1.3.3-2
ii  libcups2                                     2.2.1-4
ii  libfontconfig1                               2.11.0-6.7
ii  libgdk-pixbuf2.0-0                           2.36.2-1
ii  libgeoclue-2-0                               2.4.4-1
ii  libgeocode-glib0                             3.20.1-2
ii  libglib2.0-0                                 2.50.2-2
ii  libgnome-desktop-3-12                        3.22.2-1
ii  libgtk-3-0                                   3.22.5-1
ii  libgudev-1.0-0                               230-3
ii  libgweather-3-6                              3.20.4-1
ii  liblcms2-2                                   2.8-3
ii  libnm0                                       1.4.4-1
ii  libnotify4                                   0.7.7-1
ii  libnspr4                                     2:4.12-6
ii  libnss3                                      2:3.26.2-1
ii  libpam-systemd                               232-8
ii  libpango-1.0-0                               1.40.3-3
ii  libpangocairo-1.0-0                          1.40.3-3
ii  libpolkit-gobject-1-0                        0.105-17
ii  libpulse-mainloop-glib0                      9.0-5
ii  libpulse0                                    9.0-5
ii  librsvg2-2                                   2.40.16-1
ii  libupower-glib3                              0.99.4-4
ii  libwacom2                                    0.22-1
ii  libwayland-client0                           1.12.0-1
ii  libx11-6                                     2:1.6.4-2
ii  libxext6                                     2:1.3.3-1
ii  libxi6                                       2:1.7.8-2
ii  libxtst6                                     2:1.2.3-1
ii  nautilus-data                                3.22.2-1

Versions of packages gnome-settings-daemon recommends:
ii  iio-sensor-proxy  2.0-1
ii  pulseaudio        9.0-5

gnome-settings-daemon suggests no packages.

-- no debconf information



More information about the pkg-gnome-maintainers mailing list