[Bug 1835464] Re: nginx service fails after libssl update due to low entropy at boot

Dietmar May 1835464 at bugs.launchpad.net
Sun Jul 7 01:17:45 UTC 2019


@teward

No, I'm not sure whether it's an nginx bug.

openssl packages were updated; nginx package is at the same version.

Basically, it looks like an openssl call that previously succeeded (and
probably gave questionable responses) now has become a blocking call
that doesn't return until sufficient entropy is available to ensure a
reasonably secure random result.

Where before nginx completed in a timely manner, it appears to be now
blocking, and failing to start within the systemd timeout period,

If that's the case (which looks likely), then other services which
depend on openssl may time out as well. (tomcat with APR comes to mind
as one possibility.)

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to openssl in Ubuntu.
https://bugs.launchpad.net/bugs/1835464

Title:
  nginx service fails after libssl update due to low entropy at boot

Status in nginx package in Ubuntu:
  Incomplete
Status in openssl package in Ubuntu:
  New
Status in nginx source package in Bionic:
  Incomplete
Status in openssl source package in Bionic:
  New

Bug description:
  After updating libssl and related packages, nginx will no longer
  autostart at system boot.

  Immediately after boot, nginx.service is in a failed state.

  # service nginx status
  ● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: failed (Result: timeout) since Fri 2018-08-24 21:27:51 UTC; 32min ago
       Docs: man:nginx(8)

  systemd[1]: Starting A high performance web server and a reverse proxy server...
  systemd[1]: nginx.service: Start-pre operation timed out. Terminating.
  systemd[1]: nginx.service: Failed with result 'timeout'.
  systemd[1]: Failed to start A high performance web server and a reverse proxy server.

  
  The service can be manually started after boot.

  # service nginx start
  # service nginx status
  ● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2018-08-24 22:02:06 UTC; 2s ago
       Docs: man:nginx(8)
    Process: 2704 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 2703 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 2705 (nginx)
     CGroup: /system.slice/nginx.service
             ├─2705 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─2706 nginx: worker process

  systemd[1]: Starting A high performance web server and a reverse proxy server...
  systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
  systemd[1]: Started A high performance web server and a reverse proxy server.

  
  This happens on an ARMHF based microcontroller running ubuntu 18.04.2 raspi server distribution with a stock kernel.org 4.9-181 kernel.

  Ubuntu repositories are not accessible from the device, so packages
  are copied to the device, and apt install is used to upgrade them:

  apt install --no-install-recommends $dir/updates/system/*.deb  |
  logger 2>&1

  
  The following is a list of packages that, when upgraded, cause the nginx systemd service to fail to autostart at boot.

  201,205c201,205
  < ii  libpython2.7:armhf              2.7.15-4ubuntu4~18.04             armhf        Shared Python runtime library (version 2.7)
  < ii  libpython2.7-minimal:armhf      2.7.15-4ubuntu4~18.04             armhf        Minimal subset of the Python language (version 2.7)
  < ii  libpython2.7-stdlib:armhf       2.7.15-4ubuntu4~18.04             armhf        Interactive high-level object-oriented language (standard library, version 2.7)
  < ii  libpython3.6-minimal:armhf      3.6.8-1~18.04.1                   armhf        Minimal subset of the Python language (version 3.6)
  < ii  libpython3.6-stdlib:armhf       3.6.8-1~18.04.1                   armhf        Interactive high-level object-oriented language (standard library, version 3.6)
  ---
  > ii  libpython2.7:armhf              2.7.15~rc1-1ubuntu0.1             armhf        Shared Python runtime library (version 2.7)
  > ii  libpython2.7-minimal:armhf      2.7.15~rc1-1ubuntu0.1             armhf        Minimal subset of the Python language (version 2.7)
  > ii  libpython2.7-stdlib:armhf       2.7.15~rc1-1ubuntu0.1             armhf        Interactive high-level object-oriented language (standard library, version 2.7)
  > ii  libpython3.6-minimal:armhf      3.6.7-1~18.04                     armhf        Minimal subset of the Python language (version 3.6)
  > ii  libpython3.6-stdlib:armhf       3.6.7-1~18.04                     armhf        Interactive high-level object-oriented language (standard library, version 3.6)
  225c225
  < ii  libssl1.1:armhf                 1.1.1-1ubuntu2.1~18.04.2          armhf        Secure Sockets Layer toolkit - shared libraries
  ---
  > ii  libssl1.1:armhf                 1.1.0g-2ubuntu4.3                 armhf        Secure Sockets Layer toolkit - shared libraries
  272c272
  < ii  openssl                         1.1.1-1ubuntu2.1~18.04.2          armhf        Secure Sockets Layer toolkit - cryptographic utility
  ---
  > ii  openssl                         1.1.0g-2ubuntu4.3                 armhf        Secure Sockets Layer toolkit - cryptographic utility
  282,283c282,283
  < ii  python3.6                       3.6.8-1~18.04.1                   armhf        Interactive high-level object-oriented language (version 3.6)
  < ii  python3.6-minimal               3.6.8-1~18.04.1                   armhf        Minimal subset of the Python language (version 3.6)
  ---
  > ii  python3.6                       3.6.7-1~18.04                     armhf        Interactive high-level object-oriented language (version 3.6)
  > ii  python3.6-minimal               3.6.7-1~18.04                     armhf        Minimal subset of the Python language (version 3.6)

  
  nginx is used primarily as an https front-end for web services on the device.

  libssl is the core dependency for all of the packages in the group
  that, when upgraded, causes nginx to fail.

  The nginx configuration includes the following SSL settings:

  
  http {
          ##
          # SSL Settings
          ##

          ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
          ssl_prefer_server_ciphers on;
  }

  server {
    listen              443 ssl;
    ssl_certificate     /etc/certs/cert.crt;
    ssl_certificate_key /etc/certs/cert.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
  }

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1835464/+subscriptions



More information about the foundations-bugs mailing list