Thanks Michael for your advices !

Le 21/11/2019 à 11:27, Michael Biebl a écrit :
Am 21.11.19 um 10:49 schrieb Michael Biebl:

As you can see, the problem is, that you have a resolvconf hook which
tries to start squid.service way too early during boot. It's not
directly systemd which schedules the start of the service.
Since those hook scripts are prone to cause deadlocks, invoke-rc.d will
use "ignore-dependencies" during early boot to mimic the SysV behaviour.

I suppose if you delete that script /etc/resolvconf/update-libc.d/squid
your problem should be gone.

if  [ -d /usr/sbin ] && [ -d /run/systemd/system ] && systemctl -q is-active 
squid || [ -f /var/run/squid.pid ] ; then
    invoke-rc.d squid reload
fi

I've checked script file /etc/resolvconf/update-libc.d/squid on my system : it's a Debian 10 Buster, with squid package version 4.6-1+deb10u1, and its content is only :


#!/bin/sh

PATH="/usr/sbin:/usr/bin:/sbin:/bin"

# Make squid aware of changes to resolv.conf
# Avoid reload before /usr is mounted
if [ -d /usr/sbin ] ; then
   invoke-rc.d squid reload || true
fi


So the tests you have in your version didn't appear there ! It's from the latest squid package version (4.9), and I found it's come with this commit :
Resolvconf: Avoid reload before squid.pid is available (Closes: #911325)

I wondered why I didn't view this bug report when looking at squid package, perhaps because it was noted as fixed (but in testing/unstable version only !). I tried so to copy this new version of this script on my system, and reboot... But the squid service didn't start on next boot :-(

>> Is /var/run a symlink to /run ?
…
>> squid really should use /run/squid.pid for its service to avoid this
>> kind of problem. /run is guaranteed to exist during the whole lifetime
>> of the system and available during early boot.

I've checked that /var/run is actually a link to /run, it's OK, but as you say, perhaps I've some cruft in /var directory of the root partition, it's quite difficult to see as I can't unmount the /var partition without access to the system's console…
But I tried to fix the squid.service about this problem :

-- squid.service.old   2019-11-21 11:43:33.965354518 +0100
+++ squid.service       2019-11-21 11:43:11.529140405 +0100
@@ -13,7 +13,7 @@

 [Service]
 Type=forking
-PIDFile=/var/run/squid.pid
+PIDFile=/run/squid.pid
 ExecStartPre=/usr/sbin/squid --foreground -z
 ExecStart=/usr/sbin/squid -sYC
 ExecReload=/bin/kill -HUP $MAINPID

And with this second update, Squid service is now booting correctly at boot ! :-)


So to resume :
– I've applied the fix for #911325 bug back on my Debian Buster system
— I've updated the squid.service to use /run instead of /var/run ; my previous trial to enrich the dependencies to actually depend on /var mount wasn't required once the first point was fixed !

I'll report that progress on the squid bug I commented (#932593), however, I wonder if these fixes could be backported to the Buster suite ?

        Fred.

Reply via email to