Looking further into it, this is somehow caused by changes to the nbd
module. Before 4.8 it was actually not creating any uevents on its own.
Still there were events to be seen. With 4.8 they code changed to
generate a change event, but also will delay the capacity change until
the moment the socket is connected. And this seems to prevent whatever
is otherwise producing the change event and triggering a partition scan.
The nbd driver itself does not do that (like for example the loop driver
does). So it could be that this had ever worked only because of the
mysterious helper.

It seems that reverting a bit back to change the capacity as soon as it
is set by ioctl (there are three ioctls which do this, so the values
likely get touched multiple times, too) will again get the partition
detected reliably. Not sure this can be guaranteed always...

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1628336

Title:
  mount-image-callback cannot mount partitioned disk image

Status in linux package in Ubuntu:
  Fix Committed
Status in linux source package in Yakkety:
  Fix Committed

Bug description:
  This fails on 4.8.0-17-generic and passes on 4.4.0-9136-generic

  $ sudo apt-get update
  $ sudo apt-get install -qy cloud-image-utils
  $ wget 
http://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
  $ cp xenial-server-cloudimg-amd64-disk1.img disk.img
  $ sudo mount-image-callback xenial-server-cloudimg-amd64-disk1.img -v ls 
_MOUNTPOINT_
  replaced string _MOUNTPOINT_ in arguments arg 1
  waiting on pidfile for /dev/nbd0 in /sys/block/nbd0/pid
  connected xenial-server-cloudimg-amd64-disk1.img (qcow2) to /dev/nbd0. 
waiting for device.
  partitioned disk.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  waiting for /dev/nbd0p1 part=1 to be ready.
  gave up on waiting for /dev/nbd0p1
  $ echo $?
  1

  On an identical system other than 'apt-get install linux-virtual' to
  get the new kernel, you see:

  $ uname -r
  4.4.0-9136-generic

  $ sudo mount-image-callback disk.img -v ls _MOUNTPOINT_
  replaced string _MOUNTPOINT_ in arguments arg 1
  waiting on pidfile for /dev/nbd0 in /sys/block/nbd0/pid
  connected disk.img (qcow2) to /dev/nbd0. waiting for device.
  partitioned disk.
  mounted /dev/nbd0p1 via qemu-nbd /dev/nbd0
  invoking: MOUNTPOINT=/tmp/mount-image-callback.Y8D4lk/mp ls 
/tmp/mount-image-callback.Y8D4lk/mp
  bin   etc     lib       media  proc  sbin  sys  var
  boot  home    lib64       mnt    root  snap  tmp  vmlinuz
  dev   initrd.img  lost+found  opt    run   srv   usr
  cmd returned 0. unmounting /tmp/mount-image-callback.Y8D4lk/mp

  ProblemType: Bug
  DistroRelease: Ubuntu 16.10
  Package: linux-image-4.8.0-17-generic 4.8.0-17.19
  ProcVersionSignature: User Name 4.8.0-17.19-generic 4.8.0-rc7
  Uname: Linux 4.8.0-17-generic x86_64
  AlsaDevices:
   total 0
   crw-rw---- 1 root audio 116,  1 Sep 27 19:04 seq
   crw-rw---- 1 root audio 116, 33 Sep 27 19:04 timer
  AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
  ApportVersion: 2.20.3-0ubuntu7
  Architecture: amd64
  ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
  AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', 
'/dev/snd/timer'] failed with exit code 1:
  CRDA: N/A
  Date: Wed Sep 28 00:58:49 2016
  Ec2AMI: ami-00000438
  Ec2AMIManifest: FIXME
  Ec2AvailabilityZone: nova
  Ec2InstanceType: m1.small
  Ec2Kernel: unavailable
  Ec2Ramdisk: unavailable
  IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
  Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  MachineType: OpenStack Foundation OpenStack Nova
  PciMultimedia:

  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  ProcFB:

  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.8.0-17-generic 
root=UUID=072136f3-5666-4381-83bd-8d7175059be3 ro console=tty1 console=ttyS0
  RelatedPackageVersions:
   linux-restricted-modules-4.8.0-17-generic N/A
   linux-backports-modules-4.8.0-17-generic  N/A
   linux-firmware                            N/A
  RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
  SourcePackage: linux
  UpgradeStatus: No upgrade log present (probably fresh install)
  dmi.bios.date: 04/01/2014
  dmi.bios.vendor: SeaBIOS
  dmi.bios.version: Ubuntu-1.8.2-1ubuntu1~cloud0
  dmi.chassis.type: 1
  dmi.chassis.vendor: QEMU
  dmi.chassis.version: pc-i440fx-vivid
  dmi.modalias: 
dmi:bvnSeaBIOS:bvrUbuntu-1.8.2-1ubuntu1~cloud0:bd04/01/2014:svnOpenStackFoundation:pnOpenStackNova:pvr12.0.3:cvnQEMU:ct1:cvrpc-i440fx-vivid:
  dmi.product.name: OpenStack Nova
  dmi.product.version: 12.0.3
  dmi.sys.vendor: OpenStack Foundation

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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to