MaaS 3.1 beta 3 feature "enlist deployed machines" feature fails on 64-bit MAC addresses
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
New
|
Undecided
|
Unassigned |
Bug Description
Following instructions from section "How to update hardware information for a deployed machine" in the MaaS 3.1 beta 3 documentation (https:/
MaaS region server is running MAAS 3.1.0~beta3 on Ubuntu 20.04, installed from Deb. Rack controller is also running MAAS 3.1.0~beta3 on Ubuntu 20.04. Host being enlisted/
Error is reproduced by running the following on a system with a 64-bit MAC address network device:
```
wget http://
chmod 755 maas-run-scripts
./maas-run-scripts report-results --config $(hostname)
```
Stack trace from error shown below, pulled from MaaS region server log /var/log/
```
2021-10-20 09:56:20 metadataserver.api: [critical] myhost.
Traceback (most recent call last):
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
--- <exception caught here> ---
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
result = func(*args, **kwargs)
File "/usr/lib/
File "/usr/lib/
return func(*args, **kwds)
File "/usr/lib/
File "/usr/lib/
return update_
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
if not objs:
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
results = compiler.
File "/usr/lib/
File "/usr/lib/
return super()
File "/usr/lib/
return self._execute_
File "/usr/lib/
return executor(sql, params, many, context)
File "/usr/lib/
return self.cursor.
File "/usr/lib/
raise dj_exc_
File "/usr/lib/
return self.cursor.
LINE 1: ...0 AND NOT ("maasserver_
```
In our environment, these devices are typically Infiniband devices which MaaS does not necessarily need to be aware of. It would be a fine fix for our use-case if this exception were caught, a warning was left in the Commissioning log, and MaaS continued with commission skipping this network device.
This is similar to LP:1939456. MAAS doesn't currently support infiniband devices and fails if the MAC is not 48 bits.
We should at least skip those MACs so that the commissioning process doesn't fail