[Bug 1747044] Re: kpartx 0.7.4-2ubuntu1 in bionic does not remove loop devices

Francis Ginther francis.ginther at canonical.com
Fri Feb 2 20:09:08 UTC 2018


** Description changed:

  We're seeing a problem now when running livecd-rootfs in bionic with
  kpartx from 0.7.4-2ubuntu1. The issue appears to be the result in a
- change in output of kpartx, as a result, the /dev/loop devices are not
- getting deleted. The best data I have from this so far is a comparison
- between old and current build logs. The old logs showed:
+ change in kpartx, as a result, the /dev/loop devices are not getting
+ deleted. The best data I have from this so far is a comparison between
+ old and current build logs. The old logs showed:
  
  ++ kpartx -v -d binary/boot/disk-uefi.ext4
  + kpartx_stdout='del devmap : loop0p15
  del devmap : loop0p14
  del devmap : loop0p1
  loop deleted : /dev/loop0'
  + echo 'del devmap : loop0p15
  del devmap : loop0p14
  del devmap : loop0p1
  loop deleted : /dev/loop0'
  
- 
  Thew new logs show:
  
  ++ kpartx -v -d binary/boot/disk-uefi.ext4
  + kpartx_stdout=
  + echo ''
  
- 
- The code being run is from the 'functions' in lp:livecd-rootfs. In the current runs, kpartx_stdout is an empty string:
+ The code being run is from the 'functions' in lp:livecd-rootfs. In the
+ current runs, kpartx_stdout is an empty string:
  
  clean_loops() {
-     local kpartx_ret
-     local kpartx_stdout
+     local kpartx_ret
+     local kpartx_stdout
  
-     if [ -n "${backing_img}" ]; then
-         # sync before removing loop to avoid "Device or resource busy" errors
-         sync
-         kpartx_ret=""
-         kpartx_stdout=$(kpartx -v -d "${backing_img}") || kpartx_ret=$?
-         echo "$kpartx_stdout"
-         if [ -n "$kpartx_ret" ]; then
-             if echo "$kpartx_stdout" | grep -q "loop deleted"; then
-                 echo "Suppressing kpartx returning error (#860894)"
-             else
-                 exit $kpartx_ret
-             fi
-         fi
-         unset backing_img
-     fi
+     if [ -n "${backing_img}" ]; then
+         # sync before removing loop to avoid "Device or resource busy" errors
+         sync
+         kpartx_ret=""
+         kpartx_stdout=$(kpartx -v -d "${backing_img}") || kpartx_ret=$?
+         echo "$kpartx_stdout"
+         if [ -n "$kpartx_ret" ]; then
+             if echo "$kpartx_stdout" | grep -q "loop deleted"; then
+                 echo "Suppressing kpartx returning error (#860894)"
+             else
+                 exit $kpartx_ret
+             fi
+         fi
+         unset backing_img
+     fi
  
-     if [ -z "${rootfs_dev_mapper}" ]; then
-         return 0
-     fi
+     if [ -z "${rootfs_dev_mapper}" ]; then
+         return 0
+     fi
  
-     unset loop_device
-     unset loop_raw
-     unset rootfs_dev_mapper
+     unset loop_device
+     unset loop_raw
+     unset rootfs_dev_mapper
  }
  
  I am doing some further debugging on this and am trying to reproduce
  this outside of launchpad. I am not able to post a full build log. But I
  can probably post a longer 'sanitized' bit.

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

Title:
  kpartx 0.7.4-2ubuntu1 in bionic does not remove loop devices

Status in multipath-tools package in Ubuntu:
  New

Bug description:
  We're seeing a problem now when running livecd-rootfs in bionic with
  kpartx from 0.7.4-2ubuntu1. The issue appears to be the result in a
  change in kpartx, as a result, the /dev/loop devices are not getting
  deleted. The best data I have from this so far is a comparison between
  old and current build logs. The old logs showed:

  ++ kpartx -v -d binary/boot/disk-uefi.ext4
  + kpartx_stdout='del devmap : loop0p15
  del devmap : loop0p14
  del devmap : loop0p1
  loop deleted : /dev/loop0'
  + echo 'del devmap : loop0p15
  del devmap : loop0p14
  del devmap : loop0p1
  loop deleted : /dev/loop0'

  Thew new logs show:

  ++ kpartx -v -d binary/boot/disk-uefi.ext4
  + kpartx_stdout=
  + echo ''

  The code being run is from the 'functions' in lp:livecd-rootfs. In the
  current runs, kpartx_stdout is an empty string:

  clean_loops() {
      local kpartx_ret
      local kpartx_stdout

      if [ -n "${backing_img}" ]; then
          # sync before removing loop to avoid "Device or resource busy" errors
          sync
          kpartx_ret=""
          kpartx_stdout=$(kpartx -v -d "${backing_img}") || kpartx_ret=$?
          echo "$kpartx_stdout"
          if [ -n "$kpartx_ret" ]; then
              if echo "$kpartx_stdout" | grep -q "loop deleted"; then
                  echo "Suppressing kpartx returning error (#860894)"
              else
                  exit $kpartx_ret
              fi
          fi
          unset backing_img
      fi

      if [ -z "${rootfs_dev_mapper}" ]; then
          return 0
      fi

      unset loop_device
      unset loop_raw
      unset rootfs_dev_mapper
  }

  I am doing some further debugging on this and am trying to reproduce
  this outside of launchpad. I am not able to post a full build log. But
  I can probably post a longer 'sanitized' bit.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1747044/+subscriptions



More information about the foundations-bugs mailing list