** Description changed:

  [Impact]
  
   * libvirt-bin, in: libvirt-1.3.1-1ubuntu10.24~cloud0 in trusty mitaka uca
-    and the parent package in xenial, libvirt-1.3.1-1ubuntu10.24 are effected.
+    and the parent package in xenial, libvirt-1.3.1-1ubuntu10.24 are 
+    affected.
  
   * When you shutdown a system in trusty which is running some kvm virtual
     machines, the libvirt-bin service is stopped before libvirt-guests.
     libvirt-guests tries to connect to the libvirt socket to send shutdown
     commands to the running vms, which cannot happen since libvirtd is not
     running.
  
-  * On some machines, the qemu processes behind the virtual machines are not
-    killed and are left behind as defunct processes, which can cause the
-    system to hang on them not being terminated.
+  * On some machines, the qemu processes behind the virtual machines are 
+    not killed and are left behind as defunct processes, which can cause 
+    the system to hang on them not being terminated.
  
   * The bug is caused by the libvirt-bin upstart script [1] calling a
-    non-existant script, /usr/lib/libvirt/libvirt-stop-guests [2]. This script
-    used to exist in the upstart script itself in version 1.2.2-0ubuntu13.1.27
-    [3], the version in the trusty archives. In liberty UCA,
-    version 1.2.16-2ubuntu11.15.10.4~cloud0 [4], the script was seperated out
-    into /usr/lib/libvirt/libvirt-stop-guests [2]. In the mitaka release, the
-    libvirt-stop-guests script was removed and rewritten as
-    /etc/init.d/libvirt-guests [5], but the script in [1] was never updated to
-    point to it.
+    non-existant script, /usr/lib/libvirt/libvirt-stop-guests [2]. This 
+    script used to exist in the upstart script itself in version
+    1.2.2-0ubuntu13.1.27 [3], the version in the trusty archives. In 
+    liberty UCA, version 1.2.16-2ubuntu11.15.10.4~cloud0 [4], the script 
+    was separated out into /usr/lib/libvirt/libvirt-stop-guests [2].
+    In the mitaka release, the libvirt-stop-guests script was removed and 
+    rewritten as /etc/init.d/libvirt-guests [5], but the script in [1] was 
+    never updated to point to it.
  
     [1] http://paste.ubuntu.com/p/GxxBczkCmk
     [2] http://paste.ubuntu.com/p/fKCDQh46vh
     [3] http://paste.ubuntu.com/p/QrKXqK2Bvz
     [4] http://paste.ubuntu.com/p/W8DgQwpYv3
     [5] http://paste.ubuntu.com/p/Z28Sp2fPd6
  
   * Since the upstart script was never updated to point to it, libvirt-bin
     stops without stopping libvirt-guests first. When libvirt-guests is
-    stopped later, it cannot access the libvirt socket, cannot shut down the
-    machines, causing the bug.
+    stopped later, it cannot access the libvirt socket, cannot shut down 
+    the machines, causing the bug.
  
-  * The fix is to change the upstart script to point to the new libvirt-guests
-    script.
+  * The fix is to change the upstart script to point to the new libvirt-
+    guests script.
  
  [Test Case]
  
-  * You can reproduce this in trusty with the mitaka UCA enabled.
+  * You can reproduce this in trusty with the mitaka UCA enabled.
  
-  1) Enable mitaka UCA and install libvirt0 and libvirt-bin
+  1) Enable mitaka UCA and install libvirt0 and libvirt-bin
  
-  $ sudo add-apt-repository cloud-archive:mitaka
-  $ sudo apt update
-  $ sudo apt install libvirt0 libvirt-bin
+  $ sudo add-apt-repository cloud-archive:mitaka
+  $ sudo apt update
+  $ sudo apt install libvirt0 libvirt-bin
  
-  2) Install a virtual machine, either by using virt-install or virt-manager.
-    I used a bionic VM.
+  2) Install a virtual machine, either by using virt-install or
+     virt-manager.
+     I used a bionic VM.
  
-  3) Enable debugging on libvirt-guests so you can see what is going on
+  3) Enable debugging on libvirt-guests so you can see what is going on
  
-  Modify /etc/init.d/libvirt-guests and add "-x" to the end of "!/bin/sh"
+  Modify /etc/init.d/libvirt-guests and add "-x" to the end of "!/bin/sh"
  
-  4) With the vm running, shut down the system
+  4) With the vm running, shut down the system
  
-  $ sudo shutdown -h now
+  $ sudo shutdown -h now
  
-  5) Check /var/log/upstart/libvirt-bin.log, on reboot. It will say
-  "No such file or directory: /usr/lib/libvirt/libvirt-stop-guests"
+  5) Check /var/log/upstart/libvirt-bin.log, on reboot. It will say
+  "No such file or directory: /usr/lib/libvirt/libvirt-stop-guests"
  
-  6) During that shutdown, you will see messages like:
-  error: failed to connect to the hypervisor
-  error: no valid connection
-  error: Failed to connect socket to '/var/run/libvirt/libvirt-sock':
-  No such file or directory
+  6) During that shutdown, you will see messages like:
+  error: failed to connect to the hypervisor
+  error: no valid connection
+  error: Failed to connect socket to '/var/run/libvirt/libvirt-sock':
+  No such file or directory
  
-  What should happen:
+  What should happen:
  
-  If you follow the same steps with the fixed package, when you look at
-  /var/log/upstart/libvirt-bin.log, you will see output of libvirt-guests
-  connecting to and shutting down the virtual machines which looks a little
-  like this: https://paste.ubuntu.com/p/s4jyJX2y9F/
+  If you follow the same steps with the fixed package, when you look at
+  /var/log/upstart/libvirt-bin.log, you will see output of libvirt-guests
+  connecting to and shutting down the virtual machines which looks a little
+  like this: https://paste.ubuntu.com/p/s4jyJX2y9F/
  
  [Regression Potential]
  
   * There is only one file modified, the upstart script for libvirt-bin.
     Currently this upstart file references a file which doesn't exist, so
-    fixing it will restore the behaviour in a way which aligns with exactly
+    fixing it will restore the behavior in a way which aligns with exactly
     what took place in previous versions.
  
-  * In xenial, there is no concern of stopping an already stopped service in
-    the event that the upstart script pre-stop section is called by systemd.
+  * In xenial, all of this isn't used at all - see below at "Other Info"
  
   * This change only effects systems during shutdown while they still
     have virtual machines running, and do not effect starting and stopping
     services while the machine is running normally.
  
   * I believe the regression potential is low.
  
  [Other Info]
  
   * Xenial is not effected by this bug even though it ships the exact same
     packages. This is because xenial uses insserv to generate service
-    dependency files ".depend.boot" ".depend.start" ".depend.stop" which parse
-    the scripts in /etc/init.d/ and systemd respects the dependency ordering
-    in these files.
-    libvirt-guests reports a dependency on libvirt-bin in the script header,
-    so systemd will always stop libvirt-guests before libvirt-bin, avoiding
-    the problem seen in trusty.
+    dependency files ".depend.boot" ".depend.start" ".depend.stop" which 
+    parse the scripts in /etc/init.d/ and systemd respects the dependency 
+    ordering in these files.
+    libvirt-guests reports a dependency on libvirt-bin in the script 
+    header, so systemd will always stop libvirt-guests before libvirt-bin, 
+    avoiding the problem seen in trusty.
  
-  * The fix is needed in trusty mitaka UCA and xenial will likely need the SRU
-    as part of the process.
+  * The fix is needed in trusty mitaka UCA and xenial will likely need the 
+    SRU as part of the process.
+ 
+  * We'd never have uploaded that change alone for xenial (being a no-op 
+    causing MBs to download and an upgrade. But we will bundle it with an 
+    actual change - so it can "ride along" to eventually help
+    Trusty-Mitaka.

** Changed in: libvirt (Ubuntu Xenial)
       Status: Fix Released => Triaged

** Changed in: libvirt (Ubuntu Xenial)
     Assignee: (unassigned) => Christian Ehrhardt  (paelzer)

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

Title:
  libvirt-bin: during shutdown libvirt-bin is stopped before libvirt-
  guests causing hang

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1829823/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to