Test Steps: --- # Document versions lsb_release -cs uname -rv dpkg -s bcache-tools xfsprogs | grep -i version
# Create disk image DISK_IMG=disk.img rm -f $DISK_IMG dd if=/dev/zero of=$DISK_IMG bs=1G count=0 seek=1 # Create bcache backing device from disk image BACKING_DEV=$(sudo losetup --find --show $DISK_IMG) sudo make-bcache -B $BACKING_DEV echo $BACKING_DEV | sudo tee /sys/fs/bcache/register # for Disco only. sleep 1 # Create xfs on its bcache device BCACHE_DEV="$(readlink -e /sys/block/$(basename $BACKING_DEV)/bcache/dev)" BCACHE_DEV="/dev/$(basename $BCACHE_DEV)" sudo mkfs.xfs -d agsize=16m -l agnum=0 -f $BCACHE_DEV sleep 1 # Stop bcache device to flush (needed) echo 1 | sudo tee /sys/block/$(basename $BCACHE_DEV)/bcache/stop sleep 1 # Check signatures for XFS and XFS journal (both before 0x40000 / 256K) sudo hexdump -C $BACKING_DEV | grep -m2 -e XFSB -e 'fe ed ba be' # Test old version dpkg -s libblkid1 | grep -i version sudo blkid -o udev -p $BACKING_DEV # Install new version sudo add-apt-repository ppa:mfo/lp1858802-sru sudo apt update sudo apt install -y libblkid1 # Test new version dpkg -s libblkid1 | grep -i version sudo blkid -o udev -p $BACKING_DEV # Stop loop/backing device sudo losetup -d $BACKING_DEV -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to util-linux in Ubuntu. https://bugs.launchpad.net/bugs/1858802 Title: libblkid: no bcache UUID due to ambivalent detection of bcache and xfs_external_log for regular xfs in bcache backing device Status in util-linux package in Ubuntu: In Progress Status in util-linux source package in Xenial: In Progress Status in util-linux source package in Bionic: In Progress Status in util-linux source package in Disco: In Progress Status in util-linux source package in Eoan: In Progress Status in util-linux source package in Focal: In Progress Status in util-linux package in Debian: Unknown Bug description: [Impact] * Users with an XFS filesystem on top of bcache (this is seen on some ceph, cloud deployments) might fail to reference the bcache device by UUID or other udev properties. * The journal of the regular XFS filesystem in the bcache device is incorrectly detected as an XFS external log; so two superblocks are detected (bcache and xfs_external_log). * Thus blkid fails with ambivalent superblocks detected then doesn't provide the usual udev properties (UUID, etc.) * The fix improves the probe function for XFS external log so it detects it's regular XFS and bails out. [Test Case] * See test steps detailed in comment #7 and later. - Create an XFS filesystem with the journal/log in the beginning of the bcache device (< 256K). - Stop the bcache device. - Run '$ blkid -o udev -p $BCACHE_BACKING_DEVICE'. $ sudo make-bcache -B $BACKING_DEV $ sudo mkfs.xfs -d agsize=16m -l agnum=0 -f $BCACHE_DEV $ echo 1 | sudo tee /sys/block/$(basename $BCACHE_DEV)/bcache/stop $ sudo blkid -o udev -p $BACKING_DEV [Regression Potential] * The patch only changes the detection function for XFS external log to be more general about the sector where the magic of regular XFS may be found (which is shifted inside the bcache.) * It still checks at sector zero (the only one checked previously), so this behavior didn't change. * Possible regressions are actual XFS external log devices that are not anymore detected as such. (Although that would probably indicate a different bug in libblkid.) [Other Info] * upstream commit: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=d756af7d640c51ce8d1414607bd3f17eeecf2424 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1858802/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp