[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:50:41 UTC 2018
The earlier steps to reproduce were wrong. I failed to convert the img
file to a raw file first. So I should have:
# Get a cloud image and convert it to raw format:
$ wget https://cloud-images.ubuntu.com/bionic/20180124/bionic-server-cloudimg-amd64.img
$ qemu-img convert -O raw bionic-server-cloudimg-amd64.img bionic-server-cloudimg-amd64.raw
# Now kpartx will attach the loop device:
$ sudo kpartx -v -l bionic-server-cloudimg-amd64.raw
loop3p1 : 0 4384735 /dev/loop3 227328
loop3p14 : 0 8192 /dev/loop3 2048
loop3p15 : 0 217088 /dev/loop3 10240
loop deleted : /dev/loop3
$ sudo kpartx -v -s -a bionic-server-cloudimg-amd64.raw
add map loop3p1 (253:0): 0 4384735 linear 7:3 227328
add map loop3p14 (253:1): 0 8192 linear 7:3 2048
add map loop3p15 (253:2): 0 217088 linear 7:3 10240
# But removing does nothing:
$ sudo kpartx -v -d bionic-server-cloudimg-amd64.raw
$ ll /dev/mapper
total 0
drwxr-xr-x 2 root root 120 Feb 2 20:43 ./
drwxr-xr-x 16 root root 3640 Feb 2 20:43 ../
crw------- 1 root root 10, 236 Feb 2 20:03 control
lrwxrwxrwx 1 root root 7 Feb 2 20:43 loop3p1 -> ../dm-0
lrwxrwxrwx 1 root root 7 Feb 2 20:43 loop3p14 -> ../dm-1
lrwxrwxrwx 1 root root 7 Feb 2 20:43 loop3p15 -> ../dm-2
--
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