os-prober will double mount multipath partitions
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
curtin (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Xenial |
Fix Released
|
Medium
|
Unassigned | ||
Yakkety |
Fix Released
|
Medium
|
Unassigned | ||
os-prober (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
Xenial |
New
|
Undecided
|
Unassigned | ||
Yakkety |
New
|
Undecided
|
Unassigned |
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/
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://
100 /var/lib/
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/
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.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: os-prober 1.70ubuntu3
ProcVersionSign
Uname: Linux 4.4.0-59-generic x86_64
NonfreeKernelMo
ApportVersion: 2.20.1-0ubuntu2.4
Architecture: amd64
CurrentDesktop: GNOME-Flashback
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)
Related branches
- Scott Moser (community): Approve
- Server Team CI bot: Approve (continuous-integration)
-
Diff: 14 lines (+0/-5)1 file modifiedcurtin/commands/curthooks.py (+0/-5)
Changed in curtin (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in curtin (Ubuntu Xenial): | |
status: | New → Confirmed |
importance: | Undecided → Medium |
description: | updated |
Changed in curtin (Ubuntu Yakkety): | |
status: | New → Confirmed |
importance: | Undecided → Medium |
tags: |
added: verification-needed-xenial verification-needed-yakkety removed: verification-needed |
This bug was fixed in the package curtin - 0.1.0~bzr459- 0ubuntu1
--------------- bzr459- 0ubuntu1) zesty; urgency=medium
curtin (0.1.0~
* New upstream snapshot. VMTEST_ CURTIN_ EXE variable.
- Remove style checking during build and add latest style checks to tox
- avoid UnicodeDecode error on passing non-utf8 into shlex
- adjustments to version string handling, improved pack unit tests.
- helpers/common: Add grub install debugging output
- curtin: add version module and display in output and logs
- content decoding in load_file, apply_net raise exception on errors
- gpg: retry when recv'ing gpg keys fail (LP: #1661337)
- Add clear_holders checks to disk and partition handlers (LP: #1659509)
- net: add new lines after rendered static routes. (LP: #1649652)
- multipath: don't run update-grub; setup_grub will handle this better.
(LP: #1656369)
- test related changes:
- vmtest: Add tests for zesty and Trusty HWE-X kernels.
- tests: fix tox tip-pycodestyle complaints
- image-sync: add debugging output to help diagnose errors
- vmtest: change get_curtin_version to use version subcommand.
- subp doc an unit test improvements.
- vmtest: Add the ability to add extra config files to test execution.
- vmtest: overhaul image sync
- vmtest: skip apt-proxy test if not set
- vmtest: add 'webserv' helper
- vmtest: add CURTIN_
-- Scott Moser <email address hidden> Wed, 08 Feb 2017 15:29:57 -0500