Activity log for bug #1680591

Date Who What changed Old value New value Message
2017-04-06 20:13:18 Scott Moser bug added bug
2017-04-06 20:19:12 Scott Moser curtin: status New Confirmed
2017-04-06 20:18:58 Launchpad Janitor branch linked lp:~smoser/curtin/trunk.lp1680591
2017-04-06 20:19:16 Scott Moser curtin: importance Undecided Medium
2017-04-06 20:38:13 Scott Moser description In some debugging of another issue, we realized that installs with root on bcache such as in tests/vmtests/test_bcache_basic.py end up booting with root=/dev/bcache0 (or bcache*) rather than UUID=. This is not good as bcache names are not guaranteed in any order. The reason this was failing was that when we create a filesystem on /dev/bcache0 no symlinks would be updated in /dev/disk/by-uuid/. The lack of a by-uuid entry causes /etc/grub.d/10_linux to take the 'GRUB_DEVICE' path in | if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ | || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ | || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then | LINUX_ROOT_DEVICE=${GRUB_DEVICE} | else | LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} | fi For other devices the /dev/disk/by-uuid entries were (we believe) being created by the the udev watches in /lib/udev/rules.d/60-block.rules. However, the watch there does not cover bcache devices. ## /lib/udev/rules.d/60-block.rules | # watch metadata changes, caused by tools closing the device node which was opened for writing | ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*", OPTIONS+="watch" In some debugging of another issue, we realized that installs with root on bcache such as in tests/vmtests/test_bcache_basic.py end up booting with root=/dev/bcache0 (or bcache*) rather than UUID=. This is not good as bcache names are not guaranteed in any order. The reason this was failing was that when we create a filesystem on /dev/bcache0 no symlinks would be updated in /dev/disk/by-uuid/. The lack of a by-uuid entry causes /etc/grub.d/10_linux to take the 'GRUB_DEVICE' path in | if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ | || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ | || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then | LINUX_ROOT_DEVICE=${GRUB_DEVICE} | else | LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} | fi For other devices the /dev/disk/by-uuid entries were (we believe) being created by the the udev watches in /lib/udev/rules.d/60-block.rules. However, the watch there does not cover bcache devices. ## /lib/udev/rules.d/60-block.rules | # watch metadata changes, caused by tools closing the device node which was opened for writing | ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*", OPTIONS+="watch" Related bugs: * bug 1680597: udev 60-block.rules does not watch bcache
2017-04-06 20:38:44 Scott Moser description In some debugging of another issue, we realized that installs with root on bcache such as in tests/vmtests/test_bcache_basic.py end up booting with root=/dev/bcache0 (or bcache*) rather than UUID=. This is not good as bcache names are not guaranteed in any order. The reason this was failing was that when we create a filesystem on /dev/bcache0 no symlinks would be updated in /dev/disk/by-uuid/. The lack of a by-uuid entry causes /etc/grub.d/10_linux to take the 'GRUB_DEVICE' path in | if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ | || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ | || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then | LINUX_ROOT_DEVICE=${GRUB_DEVICE} | else | LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} | fi For other devices the /dev/disk/by-uuid entries were (we believe) being created by the the udev watches in /lib/udev/rules.d/60-block.rules. However, the watch there does not cover bcache devices. ## /lib/udev/rules.d/60-block.rules | # watch metadata changes, caused by tools closing the device node which was opened for writing | ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*", OPTIONS+="watch" Related bugs: * bug 1680597: udev 60-block.rules does not watch bcache In some debugging of another issue, we realized that installs with root on bcache such as in tests/vmtests/test_bcache_basic.py end up booting with root=/dev/bcache0 (or bcache*) rather than UUID=. This is not good as bcache names are not guaranteed in any order. The reason this was failing was that when we create a filesystem on /dev/bcache0 no symlinks would be updated in /dev/disk/by-uuid/. The lack of a by-uuid entry causes /etc/grub.d/10_linux to take the 'GRUB_DEVICE' path in | if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ | || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ | || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then | LINUX_ROOT_DEVICE=${GRUB_DEVICE} | else | LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} | fi For other devices the /dev/disk/by-uuid entries were (we believe) being created by the the udev watches in /lib/udev/rules.d/60-block.rules. However, the watch there does not cover bcache devices. ## /lib/udev/rules.d/60-block.rules | # watch metadata changes, caused by tools closing the device node which was opened for writing | ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*", OPTIONS+="watch" Related bugs:  * bug 1680597: udev 60-block.rules does not watch bcache * bug 1676991: bcache mounts inconsistent after node reboots
2017-04-06 20:42:29 Launchpad Janitor branch linked lp:curtin
2017-04-06 20:42:57 Scott Moser bug task added curtin (Ubuntu)
2017-04-06 20:43:04 Scott Moser curtin (Ubuntu): status New Confirmed
2017-04-06 20:43:09 Scott Moser curtin (Ubuntu): importance Undecided Medium
2017-04-06 20:43:16 Scott Moser curtin: status Confirmed Fix Committed
2017-05-19 21:51:07 Launchpad Janitor curtin (Ubuntu): status Confirmed Fix Released
2017-06-12 19:51:54 Launchpad Janitor branch linked lp:~curtin-dev/curtin/artful
2017-12-15 22:12:37 Scott Moser curtin: status Fix Committed Fix Released