It appears we throw the following exception when a LXD VMHost with RAID configured refreshes and processes commissioning results:
2022-09-20 16:29:13 metadataserver.api: [critical] seeker02.maas(sfk63n): commissioning script '50-maas-01-commissioning' failed during post-processing.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/metadataserver/api.py", line 856, in signal
target_status = process(node, request, status)
File "/usr/lib/python3/dist-packages/metadataserver/api.py", line 680, in _process_commissioning
self._store_results(
File "/usr/lib/python3/dist-packages/metadataserver/api.py", line 565, in _store_results
script_result.store_result(
File "/usr/lib/python3/dist-packages/metadataserver/models/scriptresult.py", line 372, in store_result
signal_status = try_or_log_event(
--- <exception caught here> ---
File "/usr/lib/python3/dist-packages/metadataserver/api.py", line 483, in try_or_log_event
func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/metadataserver/builtin_scripts/hooks.py", line 1097, in process_lxd_results
_process_lxd_resources(node, data)
File "/usr/lib/python3/dist-packages/metadataserver/builtin_scripts/hooks.py", line 612, in _process_lxd_resources
storage_devices = _update_node_physical_block_devices(
File "/usr/lib/python3/dist-packages/metadataserver/builtin_scripts/hooks.py", line 905, in _update_node_physical_block_devices
device.save(update_fields=["name"])
File "/usr/lib/python3/dist-packages/maasserver/models/cleansave.py", line 48, in save
return super().save(*args, **kwargs)
File "/usr/lib/python3/dist-packages/maasserver/models/timestampedmodel.py", line 78, in save
return super().save(*args, **kwargs)
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 739, in save
self.save_base(using=using, force_insert=force_insert,
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 787, in save_base
post_save.send(
File "/usr/lib/python3/dist-packages/django/dispatch/dispatcher.py", line 180, in send
return [
File "/usr/lib/python3/dist-packages/django/dispatch/dispatcher.py", line 181, in <listcomp>
(receiver, receiver(signal=self, sender=sender, **named))
File "/usr/lib/python3/dist-packages/maasserver/models/signals/blockdevices.py", line 32, in update_filesystem_group
group.save()
File "/usr/lib/python3/dist-packages/maasserver/models/filesystemgroup.py", line 775, in save
super().save(*args, **kwargs)
File "/usr/lib/python3/dist-packages/maasserver/models/cleansave.py", line 46, in save
self.full_clean(exclude=exclude_clean_fields, validate_unique=False)
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 1251, in full_clean
raise ValidationError(errors)
django.core.exceptions.ValidationError: {'__all__': ['RAID level 1 must have at least 2 raid devices and any number of spares.']}
This particular machine has 4 disks configured into two RAID 1 devices, then those two are configured into a RAID 0. This RAID configuration was created when deploying via MAAS, and did not raise an exception for deployment.
machine-resource output: https://pastebin.canonical.com/p/k32z4HqJx3/