Tested the fix. It works. Thanks!

quick fix:

sed -i "s#ExecStart=#RemainAfterExit=yes\nExecStop=#;"
/lib/systemd/system/unattended-upgrades.service

But now it seems that it doesn't run it on shutdown. I used the
following debug service:

ExecStop=/bin/bash -c 'echo -e "\nhello######################\n" >
/dev/ttyS0'

And it doesn't print message in serial console. But when you start and
stop this unit manually - it prints.

[  OK  ] Stopped target Graphical Interface.
         Stopping Accounts Service...
         Stopping User Manager for UID 1000...
         Stopping Session 1 of user ubuntu.
         Stopping ACPI event daemon...
[  OK  ] Stopped target Cloud-init target.
[  OK  ] Stopped Execute cloud user/final scripts.
[  OK  ] Stopped target Multi-User System.
         Stopping Deferred execution scheduler...
         Stopping LXD - container startup/shutdown...
         Stopping D-Bus System Message Bus...
         Stopping LSB: daemon to balance interrupts for SMP systems...
         Stopping LSB: Set the CPU Frequency Scaling governor to "ondemand"...
         Stopping LSB: MD monitoring daemon...
         Stopping Regular background program processing daemon...
         Stopping FUSE filesystem for LXC...
         Stopping OpenBSD Secure Shell server...
         Stopping LSB: Record successful boot for GRUB...
[  OK  ] Stopped target Timers.
[  OK  ] Stopped Timer to automatically refresh installed snaps.
[  OK  ] Stopped Daily apt activities.
[  OK  ] Stopped Daily Cleanup of Temporary Directories.
[  OK  ] Stopped target Login Prompts.
         Stopping Getty on tty1...
         Stopping Serial Getty on ttyS0...
[  OK  ] Stopped Apply the settings specified in cloud-config.
[  OK  ] Stopped target Cloud-config availability.
         Stopping Snappy daemon...
         Stopping System Logging Service...
[  OK  ] Stopped target System Time Synchronized.
         Stopping LSB: automatic crash report generation...
[  OK  ] Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.
         Stopping Authenticate and Authorize Users to Run Privileged Tasks...
[  OK  ] Unmounted /var/lib/lxcfs.
[  OK  ] Stopped System Logging Service.
[  OK  ] Stopped Deferred execution scheduler.
[  OK  ] Stopped OpenBSD Secure Shell server.
[  OK  ] Stopped Accounts Service.
[  OK  ] Stopped Snappy daemon.
[  OK  ] Stopped ACPI event daemon.
[  OK  ] Stopped Authenticate and Authorize Users to Run Privileged Tasks.
[  OK  ] Stopped Serial Getty on ttyS0.
[  OK  ] Stopped Regular background program processing daemon.
[  OK  ] Stopped Getty on tty1.
[  OK  ] Stopped User Manager for UID 1000.
[  OK  ] Stopped Session 1 of user ubuntu.
[  OK  ] Stopped D-Bus System Message Bus.
[  OK  ] Stopped FUSE filesystem for LXC.
[  OK  ] Stopped LXD - container startup/shutdown.
[  OK  ] Stopped LSB: MD monitoring daemon.
[  OK  ] Stopped LSB: Record successful boot for GRUB.
[  OK  ] Stopped LSB: daemon to balance interrupts for SMP systems.
[  OK  ] Stopped LSB: automatic crash report generation.
[  OK  ] Stopped LSB: Set the CPU Frequency Scaling governor to "ondemand".
[  OK  ] Stopped User Manager for UID 1000.
[  OK  ] Removed slice User Slice of ubuntu.
         Stopping Login Service...
[  OK  ] Removed slice system-getty.slice.
[  OK  ] Removed slice system-serial\x2dgetty.slice.
[  OK  ] Stopped /etc/rc.local Compatibility.
         Stopping Permit User Sessions...
[  OK  ] Stopped Login Service.
[  OK  ] Stopped Permit User Sessions.
[  OK  ] Stopped target Remote File Systems.
[  OK  ] Stopped target Remote File Systems (Pre).
         Stopping Login to default iSCSI targets...
[  OK  ] Stopped target User and Group Name Lookups.
[  OK  ] Stopped target Basic System.
[  OK  ] Stopped target Paths.
[  OK  ] Stopped Forward Password Requests to Wall Directory Watch.
[  OK  ] Stopped Trigger resolvconf update for networkd DNS.
[  OK  ] Stopped Dispatch Password Requests to Console Directory Watch.
[  OK  ] Stopped ACPI Events Check.
[  OK  ] Stopped target Slices.
[  OK  ] Removed slice User and Session Slice.
[  OK  ] Stopped target Sockets.
[  OK  ] Closed ACPID Listen Socket.
[  OK  ] Closed UUID daemon activation socket.
[  OK  ] Closed LXD - unix socket.
[  OK  ] Closed Syslog Socket.
[  OK  ] Closed D-Bus System Message Bus Socket.
[  OK  ] Closed Socket activation for snappy daemon.
[  OK  ] Stopped target System Initialization.
         Stopping Network Time Synchronization...
[  OK  ] Stopped target Encrypted Volumes.
         Stopping Load/Save Random Seed...
[  OK  ] Stopped target Swap.
[  OK  ] Stopped Network Time Synchronization.
[  OK  ] Stopped Load/Save Random Seed.
[  OK  ] Stopped Create Volatile Files and Directories.
[  OK  ] Unmounted /home.
[  OK  ] Unmounted /boot.
[  OK  ] Stopped Login to default iSCSI targets.
         Stopping iSCSI initiator daemon (iscsid)...
[  OK  ] Stopped iSCSI initiator daemon (iscsid).
[  OK  ] Stopped target Network is Online.
[  OK  ] Stopped target Network.
[  OK  ] Stopped Initial cloud-init job (metadata service crawler).
         Stopping Raise network interfaces...
[  OK  ] Stopped Raise network interfaces.
[  OK  ] Stopped target Network (Pre).
[  OK  ] Stopped Initial cloud-init job (pre-networking).
[  OK  ] Stopped target Local File Systems.
[  OK  ] Started Unattended Upgrades Shutdown.
         Unmounting /run/user/1000...
         Unmounting /tmp...
[  OK  ] Stopped Apply Kernel Variables.
[  OK  ] Stopped Load Kernel Modules.
[  OK  ] Unmounted /run/user/1000.
[  OK  ] Unmounted /tmp.
[  OK  ] Reached target Unmount All Filesystems.
[  OK  ] Stopped target Local File Systems (Pre).
         Stopping Monitoring of LVM2 mirrors... dmeventd or progress polling...
[  OK  ] Stopped Remount Root and Kernel File Systems.
[  OK  ] Stopped Create Static Device Nodes in /dev.
[  OK  ] Reached target Shutdown.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to unattended-upgrades in
Ubuntu.
https://bugs.launchpad.net/bugs/1654600

Title:
  unattended-upgrade-shutdown hangs when /var is a separate filesystem

Status in unattended-upgrades package in Ubuntu:
  Fix Released
Status in unattended-upgrades source package in Xenial:
  Confirmed
Status in unattended-upgrades source package in Yakkety:
  Confirmed
Status in unattended-upgrades package in Debian:
  New

Bug description:
  The systemd unit file unattended-upgrades.service is used to stop a running 
unattended-upgrade
  process during shutdown. This unit file is running together with all 
filesystem
  unmount services.

  The unattended-upgrades service checks if the lockfile for unattended-upgrade
  (in /var/run) exists, and if it does, there is an unattended-upgrade in 
progress
  and the service will wait until it finishes (and therefore automatically wait 
at
  shutdown).

  However, if /var is a separate filesystem, it will get unmounted even though 
/var/run
  is a tmpfs that's still mounted on top of the /var/run directory in the /var 
filesystem.
  The unattended-upgrade script will fail to find lockfile, sleeps for 5 
seconds, and
  tries to check the lockfile again. After 10 minutes (the default timeout), it 
will finally
  exit and the system will continue shutdown.

  The problem is the error handling in 
/usr/share/unattended-upgrades/unattended-upgrade-shutdown
  where it tries to lock itself:

      while True:
          res = apt_pkg.get_lock(options.lock_file)
          logging.debug("get_lock returned %i" % res)
          # exit here if there is no lock
          if res > 0:
              logging.debug("lock not taken")
              break
          lock_was_taken = True

  The function apt_pkg.get_lock() either returns a file descriptor, or -1 on an 
error.
  File descriptors are just C file descriptors, so they are always positive 
integers.
  The code should check the result to be negative, not positive. I have 
attached a patch
  to reverse the logic.

  Additional information:

  1)
  Description:  Ubuntu 16.04.1 LTS
  Release:      16.04

  2)
  unattended-upgrades:
    Installed: 0.90ubuntu0.3
    Candidate: 0.90ubuntu0.3
    Version table:
   *** 0.90ubuntu0.3 500
          500 http://nl.archive.ubuntu.com/ubuntu xenial-updates/main amd64 
Packages
          500 http://nl.archive.ubuntu.com/ubuntu xenial-updates/main i386 
Packages
          100 /var/lib/dpkg/status
       0.90 500
          500 http://nl.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
          500 http://nl.archive.ubuntu.com/ubuntu xenial/main i386 Packages
  3)
  Fast reboot
  4)
  Very slow reboot (after a 10 minutes timeout)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/1654600/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to