Bug#1053472: starts w/o writing pid file, leading systemd to kill it

2024-01-15 Thread Joey Hess
Correction: Not the default configuration per se, just the configuration
that is necessary to interoperate with the default (chrooted) 
configuration of postfix.

-- 
see shy jo


signature.asc
Description: PGP signature


Bug#1053472: starts w/o writing pid file, leading systemd to kill it

2023-10-04 Thread Joey Hess
Package: sasl2-bin
Version: 2.1.28+dfsg1-3
Severity: normal

saslauthd was not running after an upgrade. 
Investigation showed this happening after systemctl start:

Oct 04 14:21:21 kite systemd[1]: Failed to start saslauthd.service - SASL 
Authentication Daemon.
Oct 04 14:21:21 kite systemd[1]: saslauthd.service: Failed with result 
'timeout'.
Oct 04 14:21:21 kite systemd[1]: saslauthd.service: start operation timed out. 
Terminating.
Oct 04 14:20:21 kite saslauthd[752305]: : auth failure: 
[user=linda] [service=smtp] [realm=kitenet.net] [mech=sasldb] [reason=Unknown]
Oct 04 14:19:51 kite systemd[1]: saslauthd.service: Can't open PID file 
/run/saslauthd/saslauthd.pid (yet?) after start: No such file or directory
Oct 04 14:19:51 kite saslauthd[752305]: : listening on socket: 
/var/spool/postfix/var/run/saslauthd/mux
Oct 04 14:19:51 kite saslauthd[752305]: : master pid is: 752305
Oct 04 14:19:51 kite systemd[1]: Starting saslauthd.service - SASL 
Authentication Daemon...

/run/saslauthd/saslauthd.pid did not exist. Apparently the daemon did start
though since it was handling auth attempts.

systemctl start saslauthd actually hung while this was going on, until systemd
timed out and killed the daemon.

I have worked around this by editing /usr/lib/systemd/system/saslauthd.service
and commenting out PIDFile=/var/run/saslauthd/saslauthd.pid

Aha: I notice that the pid file is being created, but in
/var/spool/postfix/var/run/saslauthd. Apparently because I use -m to make it
put the mix file there. It seems it might be new behavior for it to write the
pid file there too? Or systemd has changed its behavior when it doesn't find a
pid file. Anyway, I think -m should not affect where it puts the pid file.

-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-7-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages sasl2-bin depends on:
ii  db-util5.3.2
ii  debconf [debconf-2.0]  1.5.82
ii  init-system-helpers1.65.2
ii  libc6  2.37-12
ii  libcrypt1  1:4.4.36-2
ii  libdb5.3   5.3.28+dfsg2-2
ii  libkrb5-3  1.20.1-4
ii  libldap-2.5-0  2.5.13+dfsg-5
ii  libpam0g   1.5.2-7
ii  libsasl2-2 2.1.28+dfsg1-3
ii  libssl33.0.11-1
ii  perl   5.36.0-9

sasl2-bin recommends no packages.

sasl2-bin suggests no packages.

-- Configuration Files:
/etc/default/saslauthd changed:
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
MECHANISMS=sasldb


-- debconf information:
  cyrus-sasl2/purge-sasldb2: false
  cyrus-sasl2/upgrade-sasldb2-failed:
  cyrus-sasl2/upgrade-sasldb2-backup-failed:
  cyrus-sasl2/backup-sasldb2: /var/backups/sasldb2.bak

-- 
see shy jo