Issue and context
I have my laptop’s lid close set to suspend, but syncthing is listed as refusing to sleep
by the kernel.
I have a synced folder on an external HDD, which is mounted as follows via /etc/fstab
:
UUID=129e96dd-34ad-4dfd-b163-XXXXXXXXXXXX /media/backup btrfs user,noauto,nofail,subvol=@,lazytime,compress=zlib,x-systemd.automount
I see:
Feb 19 21:44:20 svelte systemd-logind[650]: Lid closed.
Feb 19 21:44:20 svelte systemd-logind[650]: Suspending...
Feb 19 21:44:20 svelte NetworkManager[647]: <info> [1550573060.2945] manager: sleep: sleep requested (sleeping: no enabled: yes)
Feb 19 21:44:20 svelte NetworkManager[647]: <info> [1550573060.3010] manager: NetworkManager state is now ASLEEP
Feb 19 21:44:20 svelte systemd[1]: Starting TLP suspend/resume...
Feb 19 21:44:20 svelte wpa_supplicant[738]: wlp2s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-56 noise=9999 txrate=144400
Feb 19 21:44:21 svelte systemd[1]: Started TLP suspend/resume.
Feb 19 21:44:21 svelte kernel: audit: type=1130 audit(1550573061.130:482): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=tlp-sleep comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Feb 19 21:44:21 svelte audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=tlp-sleep comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
Feb 19 21:44:21 svelte systemd[1]: Reached target Sleep.
Feb 19 21:44:21 svelte systemd[1]: Starting Suspend...
Feb 19 21:44:21 svelte systemd-sleep[4990]: Suspending system...
Feb 19 21:44:21 svelte kernel: PM: suspend entry (deep)
Feb 19 21:44:22 svelte kernel: PM: Syncing filesystems ... done.
Feb 19 21:44:42 svelte kernel: Freezing user space processes ...
Feb 19 21:44:42 svelte kernel: Freezing of tasks failed after 20.006 seconds (1 tasks refusing to freeze, wq_busy=0):
Feb 19 21:44:42 svelte kernel: syncthing D 0 3974 3960 0x800003a4
Feb 19 21:44:42 svelte kernel: Call Trace:
Feb 19 21:44:42 svelte kernel: ? __schedule+0x29b/0x8b0
Feb 19 21:44:42 svelte kernel: ? preempt_count_add+0x79/0xb0
Feb 19 21:44:42 svelte kernel: schedule+0x32/0x90
Feb 19 21:44:42 svelte kernel: autofs_wait+0x32a/0x7ba
Feb 19 21:44:42 svelte kernel: ? wait_woken+0x80/0x80
Feb 19 21:44:42 svelte kernel: ? autofs_mount_wait+0x56/0xe0
Feb 19 21:44:42 svelte kernel: autofs_mount_wait+0x56/0xe0
Feb 19 21:44:42 svelte kernel: autofs_d_automount+0xeb/0x200
Feb 19 21:44:42 svelte kernel: follow_managed+0x187/0x300
Feb 19 21:44:42 svelte kernel: lookup_fast+0x136/0x2f0
Feb 19 21:44:42 svelte kernel: ? __switch_to_xtra+0x42/0x5d0
Feb 19 21:44:42 svelte kernel: walk_component+0x48/0x2d0
Feb 19 21:44:42 svelte kernel: link_path_walk.part.11+0x1b6/0x5a0
Feb 19 21:44:42 svelte kernel: path_openat+0x9d/0x14e0
Feb 19 21:44:42 svelte kernel: ? ___preempt_schedule+0x16/0x18
Feb 19 21:44:42 svelte kernel: ? seccomp_run_filters+0x5c/0x150
Feb 19 21:44:42 svelte kernel: do_filp_open+0x93/0x100
Feb 19 21:44:42 svelte kernel: ? __audit_syscall_exit+0x22a/0x290
Feb 19 21:44:42 svelte kernel: ? __check_object_size+0xc1/0x175
Feb 19 21:44:42 svelte kernel: ? _raw_spin_unlock+0x16/0x30
Feb 19 21:44:42 svelte kernel: do_sys_open+0x186/0x210
Feb 19 21:44:42 svelte kernel: do_syscall_64+0x65/0x180
Feb 19 21:44:42 svelte kernel: entry_SYSCALL_64_after_hwframe+0x44/0xa9
Feb 19 21:44:42 svelte kernel: RIP: 0033:0x4af4ba
Feb 19 21:44:42 svelte kernel: Code: Bad RIP value.
Feb 19 21:44:42 svelte kernel: RSP: 002b:000000c00029f848 EFLAGS: 00000212 ORIG_RAX: 0000000000000101
Feb 19 21:44:42 svelte kernel: RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00000000004af4ba
Feb 19 21:44:42 svelte kernel: RDX: 0000000000080000 RSI: 000000c0000d01c0 RDI: ffffffffffffff9c
Feb 19 21:44:42 svelte kernel: RBP: 000000c00029f8c0 R08: 0000000000000000 R09: 0000000000000000
Feb 19 21:44:42 svelte kernel: R10: 0000000000000000 R11: 0000000000000212 R12: ffffffffffffffff
Feb 19 21:44:42 svelte kernel: R13: 0000000000000008 R14: 0000000000000007 R15: 0000000000000080
Feb 19 21:44:42 svelte kernel: OOM killer enabled.
Feb 19 21:44:42 svelte kernel: Restarting tasks ... done.
Feb 19 21:44:42 svelte systemd[1]: dev-disk-by\x2duuid-129e96dd\x2d34ad\x2d4dfd\x2db163\x2d882fd1fdd2e5.device: Job dev-disk-by\x2duuid-129e96dd\x2d34ad\x2d4dfd\x2db163\x2d882fd1fdd2e5.device/start timed out.
Feb 19 21:44:42 svelte rtkit-daemon[962]: The canary thread is apparently starving. Taking action.
Feb 19 21:44:42 svelte systemd[1]: Timed out waiting for device dev-disk-by\x2duuid-129e96dd\x2d34ad\x2d4dfd\x2db163\x2d882fd1fdd2e5.device.
Feb 19 21:44:42 svelte rtkit-daemon[962]: Demoting known real-time threads.
Feb 19 21:44:42 svelte systemd[1]: Dependency failed for /media/backup.
Feb 19 21:44:42 svelte rtkit-daemon[962]: Successfully demoted thread 975 of process 961 (/usr/bin/pulseaudio).
Feb 19 21:44:42 svelte systemd[1]: media-backup.mount: Job media-backup.mount/start failed with result 'dependency'.
Feb 19 21:44:42 svelte rtkit-daemon[962]: Successfully demoted thread 974 of process 961 (/usr/bin/pulseaudio).
Feb 19 21:44:42 svelte systemd[1]: dev-disk-by\x2duuid-129e96dd\x2d34ad\x2d4dfd\x2db163\x2d882fd1fdd2e5.device: Job dev-disk-by\x2duuid-129e96dd\x2d34ad\x2d4dfd\x2db163\x2d882fd1fdd2e5.device/start failed with result 'timeout'.
Feb 19 21:44:42 svelte rtkit-daemon[962]: Successfully demoted thread 961 of process 961 (/usr/bin/pulseaudio).
Feb 19 21:44:42 svelte systemd-logind[650]: Lid opened.
Feb 19 21:44:42 svelte rtkit-daemon[962]: Demoted 3 threads.
Feb 19 21:44:42 svelte systemd[1]: media-backup.automount: Got automount request for /media/backup, triggered by 3974 (syncthing)
Feb 19 21:44:42 svelte kernel: PM: suspend exit
Version Information
% syncthing --version
syncthing v1.0.0 "Erbium Earthworm" (go1.11.4 linux-amd64) builduser@svetlemodry 2019-01-01 09:37:38 UTC [noupgrade]
% uname -a
Linux svelte 4.19.20-1-MANJARO #1 SMP PREEMPT Wed Feb 6 21:33:34 UTC 2019 x86_64 GNU/Linux
Prior art
-
I initially raised this issue on Github, but was directed to raise it here.
-
In 2017, I started the thread Automount being triggered frequently (even with inotify). This has now been closed for comment, but there are indeed ways to detect a mount other than polling every few seconds:
Question
How do I suspend with a syncthing folder on an automounted external HDD?