daemon rotates socket on restart
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mod-wsgi (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Xenial |
Fix Released
|
Medium
|
Dariusz Gadomski | ||
Bionic |
Fix Released
|
Medium
|
Dariusz Gadomski |
Bug Description
[Impact]
* Lack of option for disabling wsgi socket rotation leads to errors on graceful restarts, making them not as graceful.
* Specifically, when mod-wsgi is running in daemon mode (which uses
sockets), and a graceful restart ('sudo systemctl reload apache2')
happens, the socket filename changes, and upcoming HTTP requests
in a keep-alive connection (i.e., same connection is re-utilized
for multiple HTTP requests) initiated before the graceful restart
are failed (HTTP 503 error) because the socket file is not found.
* This change introduces a new config option WSGISocketRotation that allows to disable the rotation.
* The option is disabled by default, so the default behavior remains
consistent with the previous versions (ie, socket rotation occurs.)
* This is actually desired, and designed that way by upstream,
because disabling socket rotation requires no _wsgi_ config changes,
as they can impact/alter the upcoming HTTP requests (see patch link.)
[Test Case]
* Setup apache2 with mod-wsgi.
* Make sure there are some wsgi sockets open.
* Reload apache gracefully.
* (Detailed steps are provided in comments #9 and #10)
Expected result:
No errors related to sockets in the logs
Actual result:
There are error messages related to sockets in the logs.
[Regression Potential]
* Since the value is set to On by default any regressions would manifest only after explicitly setting it to Off.
* After it's set to off WSGI application behavior will change on reloads - connections should be resumed instead of cancelled.
[Other Info]
* The fix has been introduced in mod-wsgi 4.6.0,
thus already present in Disco/Eoan/Focal,
only needed in Xenial/Bionic.
* Original bug description:
On Apache reloads the WSGI daemon tries to rotate wsgi sockets causing unnecessary log entries, especially in OpenStack context.
This has been addressed in mod-wsgi upstream (4.6.0) and could be backported to Ubuntu.
tags: | added: sts |
tags: | added: sts-sponsor-mfo |
description: | updated |
description: | updated |
tags: | removed: sts-sponsor-mfo |
Since it is already present upstream it's fixed for focal and eoan.