[Bug 1738412] Re: Init script fails test on reload/restart because of faulty regex
Andreas Hasenack
andreas at canonical.com
Mon Oct 29 19:58:13 UTC 2018
** Description changed:
[Impact]
The squid initscript has a guard against configuration mistakes that prevents the service from being disrupted if the current config has an invalid setting.
This guard relies on the "squid -k parse" command which analyzes the
configuration and, in the case of a fatal problem, outputs the string
"FATAL: <reason>". The initscript parses that output to catch such
errors before further action is taken.
There is a mistake in the expression that is looked for, though: instead
of "FATAL: ", the initscript is looking for "FATAL " (i.e., no ":"). The
consequence is that actions that would reload or restart the service end
up shutting the service down in the case of a configuration error.
The change fixes the expression that is looked for, restoring the
functionality of the guard.
[Test Case]
+ * install squid:
+ sudo apt update && sudo apt install squid -y
- * detailed instructions how to reproduce the bug
+ * confirm the reload action is quick to return and doesn't change the pid of squid, i.e., it's not restarted:
+ ubuntu at xenial-squid-reload-syntax:~$ pidof squid
+ 2684
+ ubuntu at xenial-squid-reload-syntax:~$ sudo service squid reload
+ ubuntu at xenial-squid-reload-syntax:~$ pidof squid
+ 2684
+ ubuntu at xenial-squid-reload-syntax:~$
- * these should allow someone who is not familiar with the affected
- package to reproduce the bug and verify that the updated package fixes
- the problem.
+ * add an invalid setting to the config file:
+ echo "acl nonsense nonsense nonsense" | sudo tee -a /etc/squid/squid.conf
+
+ * reload squid one more time:
+ sudo service squid reload
+
+ * After about 10s, squid should be dead and service squid status should show errors:
+ ubuntu at xenial-squid-reload-syntax:~$ pidof squid
+ ubuntu at xenial-squid-reload-syntax:~$
+
+ ubuntu at xenial-squid-reload-syntax:~$ sudo service squid status
+ ● squid.service - LSB: Squid HTTP Proxy version 3.x
+ (...)
+ Oct 29 19:56:26 xenial-squid-reload-syntax squid[2684]: Squid Parent: (squid-1) process 2881 started
+ Oct 29 19:56:26 xenial-squid-reload-syntax squid[2684]: Squid Parent: (squid-1) process 2881 exited with status 1
+ Oct 29 19:56:26 xenial-squid-reload-syntax squid[2684]: Squid Parent: (squid-1) process 2881 will not be restarted due to repeated, frequent failures
+ Oct 29 19:56:26 xenial-squid-reload-syntax squid[2684]: Exiting due to repeated, frequent failures
+
[Regression Potential]
* discussion of how regressions are most likely to manifest as a result
of this change.
* It is assumed that any SRU candidate patch is well-tested before
upload and has a low overall risk of regression, but it's important
to make the effort to think about what ''could'' happen in the
event of a regression.
* This both shows the SRU team that the risks have been considered,
and provides guidance to testers in regression-testing the SRU.
[Other Info]
* Anything else you think is useful to include
* Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
* and address these questions in advance
[Original Description]
This is a very serious issue that got fixed upstream in:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=800341
It is also logged in the Ubuntu changelog as fixed in:
squid3 (3.5.12-1) unstable; urgency=medium
[ Mathieu Parent ]
* Fix FATAL parsing before start/reload/restart (Closes: #800341)
But is in fact not fixed.
When I look in the source package I find two init scripts:
squid3.rc and squid.rc. squid3.rc has the patch while squid.rc does not.
The one being included in the package and deployed is the one that does
not have the fix.
I'm including a patch to fix this issue.
Please push this out ASAP.
--
You received this bug notification because you are a member of Ubuntu
Server, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1738412
Title:
Init script fails test on reload/restart because of faulty regex
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/squid3/+bug/1738412/+subscriptions
More information about the Ubuntu-server-bugs
mailing list