[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