[Focal] Installation Fails with "Invalid dep_id" when using Intel VROC
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
subiquity (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Impish |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Description]
On attempting to install Ubuntu 20.04 at a server using the Intel VROC (Virtual RAID on CPU) [0] technology, upon selecting the md-XXX device to partition, the installer fails and loops the user back to device selection.
The errors seen in the subiquity-debug logs under /var/log/installer outline:
2020-05-29 17:31:15,172 INFO subiquity.core:477 saving crash report 'block probing crashed with ValueError' to /var/crash/
2020-05-29 17:54:59,844 INFO curtin:1319 Validating extracted storage config components
2020-05-29 17:54:59,871 ERROR root:39 finish: subiquity/
2020-05-29 17:54:59,871 ERROR block-discover:161 block probing failed restricted=False
The server in question is a SuperMicro SSG-2029P-ACR24H, but any server in which an Intel VROC device is used should reproduce this.
Also, updating to the latest Subiquity version before moving on with the installation process results in the same error.
At last, it is useful to state that using Bionic's Live media (subiquity-based) results in the same block-discover failure.
[Impact]
Users are unable to use any Subiquity-based Ubuntu installers.
[Reproducer]
- On a server with Intel VROC support, configure the use of such with these instructions (mileage may vary from server to server) [1];
- Start a Subiquity-based Ubuntu installation (Focal or Live Bionic);
- Drive up to the part of selecting a disk to install the OS, select the VROC md array, and check the block-discover error to be posted in screen/subiquity logs.
[Workaround]
Users attempting to install Focal must use Bionic's non-live installer (d-i based) to install 18.04 and use do-release-upgrade to migrate to Focal. The d-i installer has the mdadm patches needed to support Intel VROC, but it seems Subiquity and/or Curtin don't seem to know how to handle it.
I'm attaching a full bundle of /var/log/installer from a Focal installation failure.
[0] https:/
[1] https:/
I can confirm the bug on our servers and also that the workaround actually works.
Also I attach the logs.
Maybe this is the most interesting part:
Traceback (most recent call last): subiquity/ 1966/lib/ python3. 6/site- packages/ subiquity/ controllers/ filesystem. py", line 154, in _probe wait_for( self._probe_ once_task. task, 15.0) subiquity/ 1966/usr/ lib/python3. 6/asyncio/ tasks.py" , line 358, in wait_for subiquity/ 1966/lib/ python3. 6/site- packages/ subiquitycore/ context. py", line 142, in decorated_async subiquity/ 1966/lib/ python3. 6/site- packages/ subiquity/ controllers/ filesystem. py", line 135, in _probe_once model.load_ probe_data( storage) subiquity/ 1966/lib/ python3. 6/site- packages/ subiquity/ models/ filesystem. py", line 1633, in load_probe_data subiquity/ 1966/lib/ python3. 6/site- packages/ subiquity/ models/ filesystem. py", line 1351, in reset _probe_ data)[" storage" ]["config" ] subiquity/ 1966/lib/ python3. 6/site- packages/ curtin/ storage_ config. py", line 1348, in extract_ storage_ config tree(cfg. get('id' ), final_config) subiquity/ 1966/lib/ python3. 6/site- packages/ curtin/ storage_ config. py", line 306, in get_config_tree dependencies( item, sconfig): subiquity/ 1966/lib/ python3. 6/site- packages/ curtin/ storage_ config. py", line 276, in find_item_ dependencies dep_type( item_id, dep_key, dep, config) subiquity/ 1966/lib/ python3. 6/site- packages/ curtin/ storage_ config. py", line 224, in _validate_dep_type
File "/snap/
await asyncio.
File "/snap/
return fut.result()
File "/snap/
return await meth(self, **kw)
File "/snap/
self.
File "/snap/
self.reset()
File "/snap/
self.
File "/snap/
tree = get_config_
File "/snap/
for dep in find_item_
File "/snap/
_validate_
File "/snap/
'Invalid dep_id (%s) not in storage config' % dep_id)
ValueError: Invalid dep_id (disk-md127) not in storage config