[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