[Bug 1656369] Re: os-prober will double mount multipath partitions
Scott Moser
smoser at ubuntu.com
Tue Feb 28 18:52:21 UTC 2017
I've run curtin's vmtest testsuite with the test provided in the
description by doing the following.
# get curtin for it tests at revision 460
$ bzr branch lp:curtin curtin.dist
$ bzr branch -r 460 curtin.dist curtin-r460
$ cd curtin-r460
## need to get 'curtainer' and 'curtin-in-container' from trunk
$ cp ../trunk.dist/tools/{curtainer,curtin-from-container} tools/
$ ./tools/vmtest-system-setup
$ ./tools/curtainer images:ubuntu/yakkety --proposed sm-curtin-y1
# note, used images: due to bug 1668710
$ ./tools/curtainer --proposed yakkety sm-curtin-y1
....
Setting up curtin (0.1.0~bzr460-0ubuntu1~16.10.1) ...
# bug 1656369 tests/vmtests/test_multipath.py
# bug 1659509 tests/unittests/test_commands_block_meta.py
# bug 1661337 tests/vmtests/test_apt_source.py
$ name=sm-curtin-y1
$ CURTIN_VMTEST_TOPDIR=$PWD/$name CURTIN_VMTEST_CURTIN_EXE="./tools/curtin-from-container $name curtin" \
./tools/jenkins-runner \
tests/vmtests/test_multipath.py \
tests/unittests/test_commands_block_meta.py \
tests/vmtests/test_apt_source.py
Note, due to packaging bug 1666986, we see in the installation logs:
curtin: Installation started. (0.1.0)
when that is fixed, we'll start seeing 0.1.0~bzr460-0ubuntu1~16.10.1.
** Attachment added: "output of vmtests for yakkety run"
https://bugs.launchpad.net/ubuntu/+source/os-prober/+bug/1656369/+attachment/4828526/+files/sm-curtin-y1.tar.xz
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to os-prober in Ubuntu.
https://bugs.launchpad.net/bugs/1656369
Title:
os-prober will double mount multipath partitions
Status in curtin package in Ubuntu:
Fix Released
Status in os-prober package in Ubuntu:
New
Status in curtin source package in Xenial:
Fix Committed
Status in os-prober source package in Xenial:
New
Status in curtin source package in Yakkety:
Fix Committed
Status in os-prober source package in Yakkety:
New
Bug description:
==== Begin SRU Template ========
[Impact]
During an update-grub in the target system when using multipath
the 'os-prober' tool used to discover other operating systems
to add to the grub menu does not handle duplicate paths and
mounts the same disk up twice causing unknown behavior which
sometimes results in timeouts during installation.
[Test Case]
This failure was transient, but the test cases that showed the
failure were
tests/vmtests/test_multipath.py
So to verify fix, best path is to just run vmtest successfully.
[Regression Potential]
Likeliest failure path would be for multipath installation to
not boot, or fail to install.
[Other Info]
==== End SRU Template ========
1. % lsb_release -rd
Description: Ubuntu 16.04.1 LTS
Release: 16.04
2. % apt-cache policy os-prober
os-prober:
Installed: 1.70ubuntu3
Candidate: 1.70ubuntu3
Version table:
*** 1.70ubuntu3 500
500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
100 /var/lib/dpkg/status
3. os-prober should skip over multipath partitions
4. os-prober only skips currently mounted partitions and ends up
mounting the same filesystem a second time with grub-mount; sometimes
this results in corrupt reads from /var/lib/os-
prober/<mount>/boot/grub/grub.cfg which results in undefined but
broken behavior
On multipath systems, you have two block devices pointing to the same
disk; when we create and mount a filesytem on one (/dev/sda1) we also
see the results on a second device (/dev/sdb1)
grub hooks to calling os-prober which checks /proc/mounts for mounted
partitions; it skips /dev/sda1, but when checking if /dev/sdb1 is
mounted, its not listed in /proc/mounts and then continues to call
grub-mount on /dev/sdb1; this uses grub-fuse to mount the disk a
second time.
Even if multipath-tools and the module (dm-multipath) are not loaded,
it is possible to detect multipath by examining the FSUUID on the
block devices, blkid for example, will show that /dev/sda1 and
/dev/sdb1 have the same UUID.
There is a patch for skipping multipath but requires multipathd and
the dm-multipath module to be loaded.
https://build-test.opensuse.org/package/view_file/home:coolo:test/os-
prober/os-prober-skip-part-on-multipath.patch?expand=1
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: os-prober 1.70ubuntu3
ProcVersionSignature: Ubuntu 4.4.0-59.80-generic 4.4.35
Uname: Linux 4.4.0-59-generic x86_64
NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
ApportVersion: 2.20.1-0ubuntu2.4
Architecture: amd64
CurrentDesktop: GNOME-Flashback:GNOME
Date: Fri Jan 13 11:17:25 2017
Dependencies:
gcc-6-base 6.0.1-0ubuntu1
libc6 2.23-0ubuntu5
libgcc1 1:6.0.1-0ubuntu1
InstallationDate: Installed on 2016-01-01 (378 days ago)
InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Alpha amd64 (20151209)
SourcePackage: os-prober
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/curtin/+bug/1656369/+subscriptions
More information about the foundations-bugs
mailing list