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