Comment 14 for bug 1957320

Revision history for this message
Michał Małoszewski (michal-maloszewski99) wrote (last edit ):

The fix works, 1.18.0-6ubuntu14.4 in Jammy fixes the bug.

I've created the jammy container using steps from the [Test Plan] section listed above in the Bug Description.

Then I installed nginx:

$ apt install -y nginx

and inside that container I typed in:

$ apt policy nginx

The output:

nginx:
  Installed: 1.18.0-6ubuntu14.3
  Candidate: 1.18.0-6ubuntu14.3
  Version table:
 *** 1.18.0-6ubuntu14.3 500
        500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
        100 /var/lib/dpkg/status
     1.18.0-6ubuntu14 500
        500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages

Then I repeated the steps from the [Test Plan] section.

I've noticed that nothing has changed there, so the problem still exists:

× nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
    Drop-In: /run/systemd/system/service.d
             └─zzz-lxc-service.conf
     Active: failed (Result: exit-code) since Wed 2023-06-28 19:03:05 UTC; 56s ago
       Docs: man:nginx(8)
    Process: 894 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 895 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)

Jun 28 19:03:05 jammy-test systemd[1]: Starting A high performance web server and a reverse proxy server...
Jun 28 19:03:05 jammy-test nginx[895]: nginx: [emerg] bind() to unix:/run/serve-files.socket failed (98: Unknown error)
Jun 28 19:03:05 jammy-test nginx[895]: nginx: [emerg] bind() to unix:/run/serve-files.socket failed (98: Unknown error)
Jun 28 19:03:05 jammy-test nginx[895]: nginx: [emerg] bind() to unix:/run/serve-files.socket failed (98: Unknown error)
Jun 28 19:03:05 jammy-test nginx[895]: nginx: [emerg] bind() to unix:/run/serve-files.socket failed (98: Unknown error)
Jun 28 19:03:05 jammy-test nginx[895]: nginx: [emerg] bind() to unix:/run/serve-files.socket failed (98: Unknown error)
Jun 28 19:03:05 jammy-test nginx[895]: nginx: [emerg] still could not bind()
Jun 28 19:03:05 jammy-test systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
Jun 28 19:03:05 jammy-test systemd[1]: nginx.service: Failed with result 'exit-code'.
Jun 28 19:03:05 jammy-test systemd[1]: Failed to start A high performance web server and a reverse proxy server.

The nginx fails to upgrade, because the former issue that is caused makes the service non-startable and the upgrade will trigger a service restart in postinst. Since that fails it cannot upgrade - as expected.
It has already been discussed in the comments above.

Then, I just removed the offending socket file and restarted the service. Then I've upgraded nginx using:

$ apt install nginx=1.18.0-6ubuntu14.4

Later I've typed in:

$ apt policy nginx
to check if the installed version has changed, and we see that we have a new version installed (with a fix).

nginx:
  Installed: 1.18.0-6ubuntu14.4
  Candidate: 1.18.0-6ubuntu14.4
  Version table:
 *** 1.18.0-6ubuntu14.4 500
        500 http://archive.ubuntu.com/ubuntu jammy-proposed/main amd64 Packages
        100 /var/lib/dpkg/status
     1.18.0-6ubuntu14.3 500
        500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages

Finally when I repeated steps from the [Test Plan] the problem did not exist, so the fix works. No error logs and nginx service works correctly.