gsd-power: autosleep triggering immediately after resume
Recently I've been experiencing an issue where my computer almost immediately sleeps after resuming from sleep.
After using systemd-inhibit
to block the suspend action I noticed it caused an error in the gsd-power
since dbus
prompted an interactive override for the suspension.
After failing once the system returns to operating normally until the next successful autosuspend.
After enabling debug logging on the process I reproduced the issue and it appears that the sleep
transition occurs almost immediately after the callback is registered, rather than after the configured timeout.
I've also determined the issue does not occur after a manually initiated suspend, only after a suspend caused by idling.
journal output for gsd-power
with G_MESSAGES_DEBUG=all
:
Jan 29 12:53:43 cetoddle systemd[1411]: Starting GNOME power management service...
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: _g_io_module_get_default: Found default implementation dconf (DConfSettingsBackend) for ‘gsettings-backend’
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/interface/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/peripherals/mouse/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/sound/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/privacy/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/wm/preferences/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/settings-daemon/plugins/xsettings/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/a11y/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/a11y/interface/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/interface/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/peripherals/mouse/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/sound/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/privacy/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/wm/preferences/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/settings-daemon/plugins/xsettings/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/a11y/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/a11y/interface/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: unsetenv() is not thread-safe and should not be used after threads are created
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: unsetenv() is not thread-safe and should not be used after threads are created
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: unsetenv() is not thread-safe and should not be used after threads are created
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: Starting power manager
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/settings-daemon/plugins/power/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/screensaver/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_fast: "/org/gnome/desktop/session/" (establishing: 0, active: 0)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: Registered client at path /org/gnome/SessionManager/Client18
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/settings-daemon/plugins/power/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/screensaver/" (establishing: 1)
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: watch_established: "/org/gnome/desktop/session/" (establishing: 1)
Jan 29 12:53:43 cetoddle systemd[1411]: Started GNOME power management service.
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: bus_acquired_cb: acquired bus 0xb480c0 for name org.gnome.SettingsDaemon.Power
Jan 29 12:53:43 cetoddle .gsd-power-wrap[1781]: name_lost_cb: lost name org.gnome.SettingsDaemon.Power on bus 0xb480c0
$ skipping regular idle -> normal transitions
$ start of autosleep
Jan 29 15:59:13 cetoddle .gsd-power-wrap[1781]: idletime watch: sleep (179)
Jan 29 15:59:13 cetoddle .gsd-power-wrap[1781]: Doing a state transition: sleep
Jan 29 15:59:13 cetoddle .gsd-power-wrap[1781]: TESTSUITE: Blanked screen
Jan 29 15:59:13 cetoddle .gsd-power-wrap[1781]: Removing suspend delay inhibitor
Jan 29 15:59:14 cetoddle .gsd-power-wrap[1781]: Received session is active change: now inactive
Jan 29 15:59:14 cetoddle .gsd-power-wrap[1781]: Syncing lid inhibitor and grabbing it temporarily
Jan 29 15:59:14 cetoddle .gsd-power-wrap[1781]: Adding lid switch system inhibitor
Jan 29 15:59:14 cetoddle .gsd-power-wrap[1781]: restarting lid close safety timer
Jan 29 15:59:14 cetoddle .gsd-power-wrap[1781]: setting up lid close safety timer
Jan 29 15:59:14 cetoddle .gsd-power-wrap[1781]: System inhibitor fd is 16
$ wake-up with power button
Jan 29 16:24:48 cetoddle .gsd-power-wrap[1781]: TESTSUITE: Unblanked screen
Jan 29 16:24:48 cetoddle .gsd-power-wrap[1781]: Adding suspend delay inhibitor
Jan 29 16:24:48 cetoddle .gsd-power-wrap[1781]: idletime reset (177)
Jan 29 16:24:48 cetoddle .gsd-power-wrap[1781]: ignoring state transition to normal as inactive
Jan 29 16:24:48 cetoddle .gsd-power-wrap[1781]: ignoring state transition to normal as inactive
Jan 29 16:24:48 cetoddle .gsd-power-wrap[1781]: System inhibitor fd is 17
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: Received session is active change: now active
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: Doing a state transition: normal
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: TESTSUITE: Unblanked screen
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: keyboard toggle off
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: Syncing lid inhibitor and grabbing it temporarily
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: already inhibited lid-switch
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: stopping lid close safety timer
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: restarting lid close safety timer
Jan 29 16:24:49 cetoddle .gsd-power-wrap[1781]: setting up lid close safety timer
Jan 29 16:24:58 cetoddle .gsd-power-wrap[1781]: Received screensaver ActiveChanged signal: 0 (old: 1)
Jan 29 16:24:58 cetoddle .gsd-power-wrap[1781]: setting up sleep callback 1200s
Jan 29 16:24:58 cetoddle .gsd-power-wrap[1781]: setting up sleep warning callback 600000 msec
Jan 29 16:24:58 cetoddle .gsd-power-wrap[1781]: setting up dim callback for 150s
Jan 29 16:24:58 cetoddle .gsd-power-wrap[1781]: stopping lid close safety timer
$ autosleep triggered again
Jan 29 16:25:13 cetoddle .gsd-power-wrap[1781]: Doing a state transition: sleep
Jan 29 16:25:13 cetoddle .gsd-power-wrap[1781]: installing idle_became_active_cb to clear sleep warning when transitioning away from normal (184)
Jan 29 16:25:13 cetoddle .gsd-power-wrap[1781]: TESTSUITE: Blanked screen
Jan 29 16:25:13 cetoddle .gsd-power-wrap[1781]: Removing suspend delay inhibitor
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: Received screensaver ActiveChanged signal: 1 (old: 0)
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: setting up blank callback for 30s
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: setting up sleep callback 1200s
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: setting up sleep warning callback 600000 msec
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: Not going to 'less idle' mode blank (current: sleep)
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: Received session is active change: now inactive
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: Syncing lid inhibitor and grabbing it temporarily
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: already inhibited lid-switch
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: restarting lid close safety timer
Jan 29 16:25:14 cetoddle .gsd-power-wrap[1781]: setting up lid close safety timer
$ wake up system with power button again
Jan 29 16:25:23 cetoddle .gsd-power-wrap[1781]: TESTSUITE: Unblanked screen
Jan 29 16:25:23 cetoddle .gsd-power-wrap[1781]: Adding suspend delay inhibitor
Jan 29 16:25:23 cetoddle .gsd-power-wrap[1781]: idletime reset (184)
Jan 29 16:25:23 cetoddle .gsd-power-wrap[1781]: ignoring state transition to normal as inactive
Jan 29 16:25:23 cetoddle .gsd-power-wrap[1781]: ignoring state transition to normal as inactive
Jan 29 16:25:23 cetoddle .gsd-power-wrap[1781]: System inhibitor fd is 17
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: Received session is active change: now active
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: Doing a state transition: normal
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: TESTSUITE: Unblanked screen
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: Syncing lid inhibitor and grabbing it temporarily
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: already inhibited lid-switch
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: stopping lid close safety timer
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: restarting lid close safety timer
Jan 29 16:25:24 cetoddle .gsd-power-wrap[1781]: setting up lid close safety timer
Jan 29 16:25:30 cetoddle .gsd-power-wrap[1781]: Received screensaver ActiveChanged signal: 0 (old: 1)
Jan 29 16:25:30 cetoddle .gsd-power-wrap[1781]: setting up sleep callback 1200s
Jan 29 16:25:30 cetoddle .gsd-power-wrap[1781]: setting up sleep warning callback 600000 msec
Jan 29 16:25:30 cetoddle .gsd-power-wrap[1781]: setting up dim callback for 150s
Jan 29 16:25:32 cetoddle .gsd-power-wrap[1781]: stopping lid close safety timer
$ launch systemd-inhibit block
Jan 29 16:25:47 cetoddle .gsd-power-wrap[1781]: Doing a state transition: sleep
Jan 29 16:25:47 cetoddle .gsd-power-wrap[1781]: installing idle_became_active_cb to clear sleep warning when transitioning away from normal (191)
Jan 29 16:25:47 cetoddle .gsd-power-wrap[1781]: Error calling suspend action: GDBus.Error:org.freedesktop.DBus.Error.InteractiveAuthorizationRequired: Interactive authentication required.
Jan 29 16:25:56 cetoddle .gsd-power-wrap[1781]: idletime reset (191)
Jan 29 16:25:56 cetoddle .gsd-power-wrap[1781]: Doing a state transition: normal
Jan 29 16:25:56 cetoddle .gsd-power-wrap[1781]: TESTSUITE: Unblanked screen
System details:
- uname:
Linux cetoddle 6.1.6-zen1 #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan 1 00:00:00 UTC 1980 x86_64 GNU/Linux
- systemd:
systemd 252 (252.4)
- gnome-settings-daemon:
43.0