Subject: avahi-daemon can fail to restart due to stale /run/avahi-daemon/pid
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Fri, 16 Aug 2024 15:32:29 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

The ‘avahi-daemon’ service fails to restart these days: a stale
/run/avahi-daemon/pid upon reboot leads it to abandon.  From
/var/log/messages:

--8<---------------cut here---------------start------------->8---
Aug 16 13:29:11 localhost shepherd[1]: Starting service avahi-daemon... 
Aug 16 13:29:11 localhost shepherd[1]: Service avahi-daemon has been started. 
Aug 16 13:29:11 localhost shepherd[1]: Service avahi-daemon started. 
Aug 16 13:29:11 localhost shepherd[1]: Service avahi-daemon running with value (("unknown" . #<input-output: socket 27>)). 
Aug 16 13:29:11 localhost shepherd[1]: Spawning systemd-style service /gnu/store/yfl1x5k3njghkg4ckximqb0ysppvx8na-avahi-0.8/sbin/avahi-daemon. 
Aug 16 13:29:11 localhost shepherd[1]: Running value of service avahi-daemon changed to 1497. 
Aug 16 13:29:11 localhost shepherd[1]: Service avahi-daemon (PID 1497) exited with 255. 
Aug 16 13:29:11 localhost shepherd[1]: Service avahi-daemon has been disabled. 
Aug 16 13:29:11 localhost shepherd[1]:   (Respawning too fast.) 
--8<---------------cut here---------------end--------------->8---

… and /var/log/avahi-daemon.log:

--8<---------------cut here---------------start------------->8---
2024-08-16 13:29:11 Daemon already running on PID 1346
2024-08-16 13:29:11 Daemon already running on PID 1346
2024-08-16 13:29:11 Daemon already running on PID 1346
2024-08-16 13:29:11 Daemon already running on PID 1346
2024-08-16 13:29:11 Daemon already running on PID 1346
2024-08-16 13:29:11 Daemon already running on PID 1346
2024-08-16 13:29:11 Daemon already running on PID 1346
--8<---------------cut here---------------end--------------->8---

The issue was uncovered by the switch to socket activation in commit
3298ec0200af0d0b0850a388df0a78e87320307f: despite using socket
activation, avahi-daemon checks for the presence of a PID file; however,
there’s no longer a cleanup process as is the case when #:log-file is
used, hence the bug.

But the core problem seems to be that ‘cleanup-service-type’ deletes
/var/run at boot but not /run.  I guess it should delete /run as well?

Ludo’.