2.8.2 deploy and commission fails corrupted bootorder variable detected
Bug #1894217 reported by
David van der Spek
This bug affects 5 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Invalid
|
Undecided
|
Unassigned | ||
curtin (Ubuntu) |
Fix Released
|
Medium
|
Ryan Harper |
Bug Description
When trying to redeploy OpenStack on Dell R620's in EFI boot mode and MAAS 2.8.2 the deployment failed which I believe was caused due to the previously reported boot order bug causing the system to try to boot from the "ubuntu" entry directly (this is an issue I have experienced before). When trying to recommission with 18.04 (not 20.04 due to #1869116) the commissioning fails and on the machine where the "ubuntu" boot entry was not present the firmware gives an error "Corrupted BootOrder varibale". I have not seen this before, however, I think this could cause serious issues in production.
Related branches
~paride/curtin:20.1-29-g81144052-0ubuntu1
- Server Team CI bot: Approve (continuous-integration)
- Ryan Harper (community): Approve
-
Diff: 4246 lines (+1378/-939)84 files modifiedMakefile (+1/-1)
curtin/__init__.py (+4/-0)
curtin/block/__init__.py (+16/-1)
curtin/block/dasd.py (+2/-2)
curtin/block/multipath.py (+1/-1)
curtin/commands/block_meta.py (+8/-3)
curtin/commands/curthooks.py (+130/-16)
curtin/commands/install_grub.py (+1/-1)
curtin/commands/swap.py (+4/-1)
curtin/distro.py (+23/-7)
curtin/net/deps.py (+4/-1)
curtin/swap.py (+79/-5)
debian/changelog (+44/-0)
dev/null (+0/-7)
doc/topics/config.rst (+58/-1)
examples/tests/basic.yaml (+4/-0)
examples/tests/basic_scsi.yaml (+4/-0)
examples/tests/network_v2_ovs.yaml (+3/-32)
examples/tests/nvme_bcache.yaml (+2/-4)
examples/tests/preserve-partition-wipe-vg.yaml (+0/-1)
examples/tests/raid5boot.yaml (+1/-1)
helpers/common (+0/-578)
requirements.txt (+3/-0)
tests/data/multipath-nvme.txt (+1/-0)
tests/unittests/helpers.py (+18/-0)
tests/unittests/test_block.py (+12/-0)
tests/unittests/test_block_multipath.py (+14/-0)
tests/unittests/test_commands_block_meta.py (+145/-5)
tests/unittests/test_curthooks.py (+340/-52)
tests/unittests/test_distro.py (+27/-6)
tests/unittests/test_feature.py (+6/-0)
tests/vmtests/__init__.py (+100/-22)
tests/vmtests/releases.py (+9/-0)
tests/vmtests/test_apt_config_cmd.py (+5/-1)
tests/vmtests/test_basic.py (+23/-10)
tests/vmtests/test_basic_dasd.py (+2/-2)
tests/vmtests/test_bcache_basic.py (+2/-2)
tests/vmtests/test_bcache_bug1718699.py (+2/-2)
tests/vmtests/test_bcache_ceph.py (+6/-2)
tests/vmtests/test_bcache_partitions.py (+2/-2)
tests/vmtests/test_fs_battery.py (+2/-2)
tests/vmtests/test_iscsi.py (+2/-2)
tests/vmtests/test_journald_reporter.py (+2/-2)
tests/vmtests/test_lvm.py (+2/-2)
tests/vmtests/test_lvm_iscsi.py (+2/-2)
tests/vmtests/test_lvm_raid.py (+4/-4)
tests/vmtests/test_lvm_root.py (+17/-4)
tests/vmtests/test_mdadm_bcache.py (+39/-30)
tests/vmtests/test_mdadm_iscsi.py (+2/-2)
tests/vmtests/test_multipath.py (+2/-2)
tests/vmtests/test_multipath_lvm.py (+7/-2)
tests/vmtests/test_network.py (+2/-2)
tests/vmtests/test_network_alias.py (+2/-2)
tests/vmtests/test_network_bonding.py (+2/-2)
tests/vmtests/test_network_bridging.py (+2/-2)
tests/vmtests/test_network_disabled.py (+17/-0)
tests/vmtests/test_network_ipv6.py (+5/-1)
tests/vmtests/test_network_ipv6_static.py (+2/-2)
tests/vmtests/test_network_ipv6_vlan.py (+6/-6)
tests/vmtests/test_network_mtu.py (+7/-15)
tests/vmtests/test_network_ovs.py (+2/-3)
tests/vmtests/test_network_static.py (+2/-2)
tests/vmtests/test_network_static_routes.py (+4/-4)
tests/vmtests/test_network_vlan.py (+3/-4)
tests/vmtests/test_nvme.py (+3/-4)
tests/vmtests/test_panic.py (+5/-0)
tests/vmtests/test_pollinate_useragent.py (+2/-2)
tests/vmtests/test_preserve.py (+2/-2)
tests/vmtests/test_preserve_bcache.py (+2/-2)
tests/vmtests/test_preserve_lvm.py (+2/-2)
tests/vmtests/test_preserve_partition_wipe_vg.py (+5/-4)
tests/vmtests/test_preserve_raid.py (+2/-2)
tests/vmtests/test_raid5_bcache.py (+5/-5)
tests/vmtests/test_reuse_lvm_member.py (+4/-4)
tests/vmtests/test_reuse_msdos_partitions.py (+4/-4)
tests/vmtests/test_reuse_raid_member.py (+6/-6)
tests/vmtests/test_reuse_uefi_esp.py (+10/-10)
tests/vmtests/test_simple.py (+11/-4)
tests/vmtests/test_uefi_basic.py (+9/-4)
tests/vmtests/test_zfsroot.py (+4/-5)
tools/curtainer (+43/-7)
tools/jenkins-runner (+14/-2)
tools/run-pep8 (+1/-1)
tools/vmtest-remove-release (+1/-1)
~raharper/curtin:fix/uefi-remove-dups-v2
Merged
into
curtin:master
- Dan Watkins (community): Approve
- Paride Legovini: Approve
- Server Team CI bot: Approve (continuous-integration)
-
Diff: 191 lines (+84/-40)3 files modifiedcurtin/commands/curthooks.py (+10/-0)
doc/topics/config.rst (+8/-0)
tests/unittests/test_curthooks.py (+66/-40)
summary: |
- 2.8.2 commission fails corrupted bootorder variable detected + 2.8.2 deploy and commission fails corrupted bootorder variable detected |
Changed in curtin (Ubuntu): | |
status: | Confirmed → Triaged |
Changed in curtin (Ubuntu): | |
status: | Incomplete → Fix Committed |
Changed in maas: | |
status: | New → Invalid |
To post a comment you must log in.
The error is being caused by the UEFI boot order. Here is a snippit from the log. I have attached the full log
BootCurrent: 0006 0008,0009, 0004 0x0)/Pci( 0x1,0x0) /Pci(0x0, 0x1)/MAC( ecf4bbcdee55, 1)/IPv4( 0.0.0.00. 0.0.0,0, 0)'}) 21/target' , 'efibootmgr', '--bootnum=0007', '--delete-bootnum'] with allowed return codes [0] (capture=False) 0x0)/Pci( 0x1,0x0) /Pci(0x0, 0x2)/MAC( ecf4bbcdee56, 1)/IPv4( 0.0.0.00. 0.0.0,0, 0)'}) 21/target' , 'efibootmgr', '--bootnum=0008', '--delete-bootnum'] with allowed return codes [0] (capture=False) 0x0)/Pci( 0x1,0x0) /Pci(0x0, 0x3)/MAC( ecf4bbcdee57, 1)/IPv4( 0.0.0.00. 0.0.0,0, 0)'}) 21/target' , 'efibootmgr', '--bootnum=0009', '--delete-bootnum'] with allowed return codes [0] (capture=False) 21/target/ sys/firmware/ efi/efivars' ] with allowed return codes [0] (capture=False) 21/target/ sys'] with allowed return codes [0] (capture=False) 21/target/ run'] with allowed return codes [0] (capture=False) 21/target/ proc'] with allowed return codes [0] (capture=False) 21/target/ dev'] with allowed return codes [0] (capture=False)
Timeout: 0 seconds
BootOrder: 000B,0007,
Boot0000* EFI Network 1
Boot0001* EFI Network 2
Boot0002* EFI Network 3
Boot0003* EFI Network 4
Boot0004* EFI Fixed Disk Boot Device 1
Boot0005* EFI Fixed Disk Boot Device 1
Boot0007 EFI Network 2
Boot0008 EFI Network 3
Boot0009 EFI Network 4
Boot000A* EFI Fixed Disk Boot Device 1
Boot000B* ubuntu
Removing duplicate EFI entry (0007, {'name': 'EFI Network 2', 'path': 'PcieRoot(
Running command ['unshare', '--fork', '--pid', '--', 'chroot', '/tmp/tmpcty9a9
BootCurrent: 0006
Timeout: 0 seconds
BootOrder: 000B,0008,0009,0004
Boot0000* EFI Network 1
Boot0001* EFI Network 2
Boot0002* EFI Network 3
Boot0003* EFI Network 4
Boot0004* EFI Fixed Disk Boot Device 1
Boot0005* EFI Fixed Disk Boot Device 1
Boot0008 EFI Network 3
Boot0009 EFI Network 4
Boot000A* EFI Fixed Disk Boot Device 1
Boot000B* ubuntu
Removing duplicate EFI entry (0008, {'name': 'EFI Network 3', 'path': 'PcieRoot(
Running command ['unshare', '--fork', '--pid', '--', 'chroot', '/tmp/tmpcty9a9
BootCurrent: 0006
Timeout: 0 seconds
BootOrder: 000B,0009,0004
Boot0000* EFI Network 1
Boot0001* EFI Network 2
Boot0002* EFI Network 3
Boot0003* EFI Network 4
Boot0004* EFI Fixed Disk Boot Device 1
Boot0005* EFI Fixed Disk Boot Device 1
Boot0009 EFI Network 4
Boot000A* EFI Fixed Disk Boot Device 1
Boot000B* ubuntu
Removing duplicate EFI entry (0009, {'name': 'EFI Network 4', 'path': 'PcieRoot(
Running command ['unshare', '--fork', '--pid', '--', 'chroot', '/tmp/tmpcty9a9
BootCurrent: 0006
Timeout: 0 seconds
BootOrder: 000B,0004
Boot0000* EFI Network 1
Boot0001* EFI Network 2
Boot0002* EFI Network 3
Boot0003* EFI Network 4
Boot0004* EFI Fixed Disk Boot Device 1
Boot0005* EFI Fixed Disk Boot Device 1
Boot000A* EFI Fixed Disk Boot Device 1
Boot000B* ubuntu
Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
TIMED subp(['udevadm', 'settle']): 0.009
Running command ['umount', '/tmp/tmpcty9a9
Running command ['umount', '/tmp/tmpcty9a9
Running command ['umount', '/tmp/tmpcty9a9
Running command ['umount', '/tmp/tmpcty9a9
Running command ['umount', '/tmp/tmpcty9a9
Running command ['mount', '--bind', '/dev', '/tmp/tmpc...