[Bug 1807077] Re: [SRU] mountall crashes on udev node with missing devname

Brian Murray brian at ubuntu.com
Tue Dec 11 20:12:32 UTC 2018


Hello Ryan, or anyone else affected,

Accepted mountall into trusty-proposed. The package will build now and
be available at
https://launchpad.net/ubuntu/+source/mountall/2.53ubuntu1 in a few
hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.  Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested and change the tag from
verification-needed-trusty to verification-done-trusty. If it does not
fix the bug for you, please add a comment stating that, and change the
tag to verification-failed-trusty. In either case, without details of
your testing we will not be able to proceed.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance for helping!

N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.

** Changed in: mountall (Ubuntu Trusty)
       Status: Confirmed => Fix Committed

** Tags added: verification-needed verification-needed-trusty

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1807077

Title:
  [SRU] mountall crashes on udev node with missing devname

Status in mountall package in Ubuntu:
  Invalid
Status in mountall source package in Trusty:
  Fix Committed
Status in mountall source package in Xenial:
  Won't Fix

Bug description:
  [Impact]

   * udev block nodes without a devname will crash mountall, resulting
  in an unbootable system (emergency root shell)

   * While this is not likely to happen in a matched distro/kernel
  environment (it was discovered while needing to run a bionic 4.15
  kernel on trusty), it is possible.

   * The code in try_udev_device() assumes a block subsystem will always
  have a devname; the SRU patches explicitly check for a devname and
  return if null.

  [Test Case]

   * HPE DL385 Gen10, Samsung a822 NVMe controller, trusty install

   * Kernels <4.15 (or possibly 4.14) do not expose nvme0c33n1 and do
  not trigger the bug.  Tested on 4.13, 4.4 and 3.13.

   * Kernel 4.15 exposes nvme0c33n1 in udev but does not have a devname,
  mountall crash ensues.

  [Regression Potential]

   * Patch might ignore legitimate block devices on existing
  installations.  Unlikely, since the logic path for null devname leads
  directly to a program crash.

  [Other Info]
   
   * Additional context for Canonical employees: PS4.5 is a trusty backend cloud, but we now have Gen10 hardware incoming (this was discovered while adding new nova-compute hardware).  Older kernels are not usable because Gen10 requires ilorest, which requires a >4.4 kernel (at least artful 4.13 is known good).  So trusty+4.15 is the only viable combination for continued support of the cloud while adding new hardware.  This is done via apt pinning of bionic for the kernel packages, and, mountall notwithstanding, is working fine so far.

  
  Original description:

  Running bionic's 4.15 kernel on trusty on an HPE DL385 Gen10 results
  in a device node for the NVMe controller,
  /devices/pci0000:40/0000:40:03.1/0000:43:00.0/nvme/nvme0/nvme0c33n1
  which itself does not have a devname.  When mountall gets to it:

  fsck_update: updating check priorities
  try_mount: /srv/nova/instances waiting for device
  try_udev_device: ignored /dev/loop5 (not yet ready?)
  try_udev_device: ignored /dev/loop6 (not yet ready?)
  try_udev_device: ignored /dev/loop1 (not yet ready?)
  try_udev_device: ignored /dev/loop0 (not yet ready?)
  try_udev_device: block (null) (null) (null)

  and then crashes, leaving the boot at an emergency root shell.  A
  successful scan looks like this for comparison:

  try_udev_device: block /dev/sdb (null) (null)
  try_udev_device: block /dev/sdb (null) (null)
  try_udev_device: block /dev/sda (null) (null)
  try_udev_device: block /dev/nvme0n1 ed56e3a9-60f7-4636-85a2-b53137b598e7 (null)
  try_udev_device: block /dev/bcache0 756cb2c6-b999-4905-a021-c2e688e81a86 instances

  The debdiffs check for a null devname in try_udev_device() and will
  not attempt to process it.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/1807077/+subscriptions



More information about the Ubuntu-sponsors mailing list