← Back to team overview

sts-sponsors team mailing list archive

[Bug 1863232] Re: daemon rotates socket on restart

 

Xenial verification:
Similarly to bionic with Xenial version of libapache2-mod-wsgi 4.3.0-1.1ubuntu1 and setting
WSGISocketRotation Off
in /etc/apache2/conf-enabled/wsgi.conf there's no socket rotation:
$ ls -1 /var/run/apache2/wsgi.*.sock
/var/run/apache2/wsgi.3170.u33.1.sock
$ sudo systemctl reload apache2.service
$ ls -1 /var/run/apache2/wsgi.*.sock
/var/run/apache2/wsgi.3170.u33.1.sock
$ apt-cache policy libapache2-mod-wsgi | grep Installed
  Installed: 4.3.0-1.1ubuntu1

** Tags removed: verification-needed verification-needed-xenial
** Tags added: verification-done verification-done-xenial

-- 
You received this bug notification because you are a member of STS
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1863232

Title:
  daemon rotates socket on restart

Status in mod-wsgi package in Ubuntu:
  Fix Released
Status in mod-wsgi source package in Xenial:
  Fix Committed
Status in mod-wsgi source package in Bionic:
  Fix Committed

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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mod-wsgi/+bug/1863232/+subscriptions