Public bug reported:

1. $ lsb_release -rd
Description:    Ubuntu 17.10
Release:        17.10

2. $ apt-cache policy linux-image-`uname -r`
linux-image-4.13.0-16-generic:
  Installed: 4.13.0-16.19
  Candidate: 4.13.0-16.19
  Version table:
 *** 4.13.0-16.19 500
        500 http://nova.clouds.archive.ubuntu.com/ubuntu artful/main amd64 
Packages
        100 /var/lib/dpkg/status

3. After creating some bcache devices and rebooting /dev/bcache/by-uuid/<UUID> 
-> ../../bcacheN
symlinks point to the current bcache device which is caching the dev.uuid found 
after creating a backing device.

4. /dev/bcache/by-uuid does not exist and there are not symlinks
underneath


It appears that since the initramfs loads the bcache module which probes and 
finds all of the cache devices and backing devices then once the rootfs is 
mounted and udev gets to run, the bcache kernel module does not emit the 
CACHED_UUID value into the environment if the underlying devices are already 
registered.

In dmesg, one can see that prior to mounting the rootfs, we see bcache
register events:

[    5.333973] bcache: register_bdev() registered backing device vdb2
[    5.354138] bcache: register_bdev() registered backing device vdb4
[    5.365665] bcache: register_bdev() registered backing device vdb3
[    5.397720] bcache: bch_journal_replay() journal replay done, 0 keys in 1 
entries, seq 1
[    5.428683] bcache: register_cache() registered cache device vdb1

then rootfs ismounted and systemd starts systemd-udev

[    9.350889] systemd[1]: Listening on udev Kernel Socket.

And then the coldplug replay of kernel events triggers 
/lib/udev/rules.d/69-bcache.rules
which invokes /lib/udev/bcache-register which writes the device name (/dev/vdb1 
or /dev/bcache0) into /sys/fs/bcache/register and results is the bcache kernel 
driver attempting to register the block device.  However, there is already a 
bcache device associated already and registration fails

[   11.173141] bcache: register_bcache() error opening /dev/vdb2: device 
already registered
[   11.184617] bcache: register_bcache() error opening /dev/vdb3: device 
already registered
[   11.199130] bcache: register_bcache() error opening /dev/vdb1: device 
already registered
[   11.271694] bcache: register_bcache() error opening /dev/vdb4: device 
already registered

The problem then is that only a kernel call to bch_cached_dev_run()
which happens like this:

bcache_register()
  register_bdev()
    bch_cached_dev_run()
      kobject_uevent_env(&disk_to_dev(d->disk)->kobj, KOBJ_CHANGE, env);
      
where env includes: 
    "DRIVER=bcache",
        kasprintf(GFP_KERNEL, "CACHED_UUID=%pU", dc->sb.uuid),
        NULL,
        NULL,
    };

Since that event is not emitted for any previously registered device,
then the symlink will not be created.

ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: linux-image-4.13.0-16-generic 4.13.0-16.19
ProcVersionSignature: User Name 4.13.0-16.19-generic 4.13.4
Uname: Linux 4.13.0-16-generic x86_64
AlsaDevices:
 total 0
 crw-rw---- 1 root audio 116,  1 Oct 31 22:09 seq
 crw-rw---- 1 root audio 116, 33 Oct 31 22:09 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay': 'aplay'
ApportVersion: 2.20.7-0ubuntu3.1
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord': 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', 
'/dev/snd/timer'] failed with exit code 1:
CRDA: N/A
Date: Wed Nov  1 01:39:01 2017
Ec2AMI: ami-0000030b
Ec2AMIManifest: FIXME
Ec2AvailabilityZone: nova
Ec2InstanceType: m1.small
Ec2Kernel: unavailable
Ec2Ramdisk: unavailable
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig': 'iwconfig'
Lsusb:
 Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd 
 Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: OpenStack Foundation OpenStack Nova
PciMultimedia:
 
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=C.UTF-8
 SHELL=/bin/bash
ProcFB:
 
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.13.0-16-generic 
root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0
RelatedPackageVersions:
 linux-restricted-modules-4.13.0-16-generic N/A
 linux-backports-modules-4.13.0-16-generic  N/A
 linux-firmware                             N/A
RfKill: Error: [Errno 2] No such file or directory: 'rfkill': 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: 1.10.1-1ubuntu1~cloud0
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.version: pc-i440fx-zesty
dmi.modalias: 
dmi:bvnSeaBIOS:bvr1.10.1-1ubuntu1~cloud0:bd04/01/2014:svnOpenStackFoundation:pnOpenStackNova:pvr15.0.7:cvnQEMU:ct1:cvrpc-i440fx-zesty:
dmi.product.family: Virtual Machine
dmi.product.name: OpenStack Nova
dmi.product.version: 15.0.7
dmi.sys.vendor: OpenStack Foundation

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: Confirmed


** Tags: amd64 apport-bug artful curtin ec2-images

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1729145

Title:
  /dev/bcache/by-uuid links not created after reboot

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

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to