[Bug 1641832] Re: Bash ignores exit trap on success when part of a command string
Lee Trager
lee.trager at canonical.com
Tue Nov 15 18:55:09 UTC 2016
I'm having trouble coming up with a simpler test case myself. Here is
how you can reproduce with lp:maas-images on Zesty with
bash-4.4-1ubuntu1
mkdir maas-images
cd maas-images
bzr init
bzr branch lp:maas-images
cd
export PATH=/home/ubuntu/maas-images/trunk/bin:$PATH
wget http://cloud-images.ubuntu.com/daily/server/zesty/20161111/zesty-server-cloudimg-amd64.squashfs
meph2-build --image-format squashfs-image -vv --enable-di amd64 zesty 20161111 zesty-server-cloudimg-amd64.squashfs out.d
If you execute that with 4.4-1ubuntu1 it fails due to the loop back
mount still being mounted(mount | grep maas). If you downgrade to
4.3-15ubuntu1 or use the patch from lp:~ltrager/maas-
images/workaround_lp1641832 umount is called and the script executes
successfully.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash in Ubuntu.
https://bugs.launchpad.net/bugs/1641832
Title:
Bash ignores exit trap on success when part of a command string
Status in bash package in Ubuntu:
Triaged
Bug description:
The MAAS team uses a script, lp:maas-images, which generates the
images available at images.maas.io. As part of this process we use the
following to convert a SquashFS image to an ext4 image.
sudo bash -ec 'src="$1"; img="$2"; trgmp="$3";
mounts=""
cleanup() { for m in $mounts; do umount "$m"; done; }
trap cleanup EXIT
mount -o loop "$img" "$trgmp"
mounts="$trgmp"
unsquashfs -force -xattrs -dest "$trgmp" "$src"' \
"squashimg-to-image" "$squashimg" "$output" "$trgmp"
ret=$?
rm -Rf "$mtmp" || return
return $ret
Prior to 4.4-1ubuntu1 the trap would always cause the cleanup function
to always be called. Its now only called on failure. This causes the
mount to remain and the following rm to fail. If I add 'false' to the
end of the command script or downgrade to 4.3-15ubuntu1 the cleanup
occurs.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1641832/+subscriptions
More information about the foundations-bugs
mailing list