** Also affects: apache2 (Ubuntu Jammy)
Importance: High
Status: Triaged
** Also affects: apache2 (Ubuntu Impish)
Importance: Undecided
Status: New
** Changed in: apache2 (Ubuntu Impish)
Status: New => Triaged
** Changed in: apache2 (Ubuntu Impish)
Importance: Undecided => High
--
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1832182
Title:
systemd unable to detect running apache if invoked via "apache2ctl
graceful"
Status in apache2 package in Ubuntu:
Triaged
Status in apache2 source package in Xenial:
Won't Fix
Status in apache2 source package in Bionic:
Triaged
Status in apache2 source package in Focal:
Triaged
Status in apache2 source package in Groovy:
Won't Fix
Status in apache2 source package in Hirsute:
Triaged
Status in apache2 source package in Impish:
Triaged
Status in apache2 source package in Jammy:
Triaged
Status in apache2 package in Debian:
New
Bug description:
[Impact]
Unattended upgrade will attempt to gracefully reload the Apache2 httpd
service, but it reloads apache directly, not via systemd, so systemctl
will mis-report the true status. This can cause unexpected and
unnecessary server outages when e.g. upgrading from one LTS to
another.
[Test Case]
root@server:/usr/local/sbin# apache2ctl stop
root@server:/usr/local/sbin# apache2ctl graceful
httpd not running, trying to start
root@server:/usr/local/sbin# systemctl status apache2.service
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor
preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
+-apache2-systemd.conf
Active: inactive (dead) since Mon 2019-06-10 01:04:13 MDT; 17s ago
Process: 27370 ExecStop=/usr/sbin/apachectl stop (code=exited,
status=0/SUCCESS)
Process: 11462 ExecReload=/usr/sbin/apachectl graceful (code=exited,
status=0/SUCCESS)
Main PID: 1849 (code=exited, status=0/SUCCESS)
Jun 08 19:11:24 server apachectl[1408]: AH00112: Warning: DocumentRoot
[/srv/apache2/www/...
Jun 08 19:11:24 server apachectl[1408]: AH00112: Warning: DocumentRoot
[/srv/apache2/www/...
Jun 08 19:11:24 server apachectl[1408]: AH00112: Warning: DocumentRoot
[/srv/apache2/www/...
Jun 08 19:11:24 server apachectl[1408]: AH00112: Warning: DocumentRoot
[/srv/apache2/www/...
Jun 08 19:11:24 server apachectl[1408]: AH00112: Warning: DocumentRoot
[/srv/apache2/www/...
Jun 08 19:11:24 server apachectl[1408]: AH00112: Warning: DocumentRoot
[/srv/apache2/www/...
Jun 08 19:11:24 server systemd[1]: Started The Apache HTTP Server.
Jun 09 06:25:04 server systemd[1]: Reloading The Apache HTTP Server.
Jun 09 06:25:04 server systemd[1]: Reloaded The Apache HTTP Server.
Jun 10 01:04:13 server apachectl[27370]: httpd (no pid file) not running
Output after customizing the apache2ctl script and restarting it:
root@server:/usr/local/sbin# apache2ctl_custom graceful
Invoking 'systemctl start apache2'.
Use 'systemctl status apache2' for more info.
root@server:/usr/local/sbin# systemctl status apache2.service
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor
preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
+-apache2-systemd.conf
Active: active (running) since Mon 2019-06-10 01:04:50 MDT; 4s ago
Process: 27370 ExecStop=/usr/sbin/apachectl stop (code=exited,
status=0/SUCCESS)
Process: 11462 ExecReload=/usr/sbin/apachectl graceful (code=exited,
status=0/SUCCESS)
Process: 27432 ExecStart=/usr/sbin/apachectl start (code=exited,
status=0/SUCCESS)
Main PID: 27444 (apache2)
Tasks: 6 (limit: 2318)
CGroup: /system.slice/apache2.service
+-27444 /usr/sbin/apache2 -k start
+-27448 /usr/sbin/apache2 -k start
+-27449 /usr/sbin/apache2 -k start
+-27451 /usr/sbin/apache2 -k start
+-27454 /usr/sbin/apache2 -k start
+-27455 /usr/sbin/apache2 -k start
Jun 10 01:04:50 server systemd[1]: Starting The Apache HTTP Server...
Jun 10 01:04:50 server systemd[1]: Started The Apache HTTP Server.
[Fix]
The fix is made somewhat obvious due to the fact that the issue was
fixed for "apache2ctl start" in 18.04 LTS by replacing the regular
call (which resolves to "/usr/sbin/apache2 -k start") with a check for
presence of systemd, followed by an invocation of "systemctl start
apache2.service" if that check is affirmative, or falling back to the
old start command if that check is negative.
Attached to this bug report is a diff of the file before and after I
copied the fixed invocation from the "start" subsection to the
"graceful" subsection in 18.04 LTS. A fix for 16.04 LTS would require