I manage to solve the issue.
Actually, the root cause is similar to this one: Error during init, init tries to use wlan0 when interface does not exist where regiond
was periodically showing the following error, preventing it to advertise its RPC endpoints:
2023-01-04 22:06:24 provisioningserver.utils.services: [critical] Failed to update and/or record network interface configuration: Command `/snap/maas/25212/usr/share/maas/machine-resources/arm64` returned non-zero exit status 1:
ERROR: Failed to retrieve network information: Failed to add device information for "/sys/class/net/wlan0/device": Failed to add port info: Failed to ETHTOOL_GLINK: operation not supported; interfaces: None
Traceback (most recent call last):
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 857, in _runCallbacks
current.result = callback( # type: ignore[misc]
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1750, in gotResult
current_context.run(_inlineCallbacks, r, gen, status)
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 1656, in _inlineCallbacks
result = current_context.run(
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/python/failure.py", line 489, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
--- <exception caught here> ---
File "/snap/maas/25212/lib/python3.10/site-packages/provisioningserver/utils/services.py", line 1090, in do_action
interfaces = yield maybeDeferred(self.getInterfaces)
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 244, in inContext
result = inContext.theWork() # type: ignore[attr-defined]
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 260, in <lambda>
inContext.theWork = lambda: context.call( # type: ignore[attr-defined]
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/python/context.py", line 117, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/snap/maas/25212/usr/lib/python3/dist-packages/twisted/python/context.py", line 82, in callWithContext
return func(*args, **kw)
File "/snap/maas/25212/lib/python3.10/site-packages/provisioningserver/utils/twisted.py", line 857, in callInContext
return func(*args, **kwargs)
File "/snap/maas/25212/lib/python3.10/site-packages/provisioningserver/utils/twisted.py", line 203, in wrapper
result = func(*args, **kwargs)
File "/snap/maas/25212/lib/python3.10/site-packages/provisioningserver/utils/network.py", line 1145, in get_all_interfaces_definition
for name, ipaddr in get_ip_addr().items()
File "/snap/maas/25212/lib/python3.10/site-packages/provisioningserver/utils/ipaddr.py", line 28, in get_ip_addr
output = call_and_check(command)
File "/snap/maas/25212/lib/python3.10/site-packages/provisioningserver/utils/shell.py", line 107, in call_and_check
raise ExternalProcessError(process.returncode, command, output=stderr)
provisioningserver.utils.shell.ExternalProcessError: Command `/snap/maas/25212/usr/share/maas/machine-resources/arm64` returned non-zero exit status 1:
ERROR: Failed to retrieve network information: Failed to add device information for "/sys/class/net/wlan0/device": Failed to add port info: Failed to ETHTOOL_GLINK: operation not supported
/snap/maas/25212/usr/share/maas/machine-resources/arm64
from MAAS 3.3 is exiting due to wlan0 not supporting ETHTOOL_GLINK
This has been fixed in machine-resources’ lxd dependencies: https://github.com/lxc/lxd/pull/11192
After I rebuild machine-resources
with updated deps, /snap/maas/25212/usr/share/maas/machine-resources/arm64
is now working as expected:
ubuntu@maas:/$ /snap/maas/25212/usr/share/maas/machine-resources/arm64
{
"api_extensions": [
"resources",
"resources_cpu_socket",
"resources_gpu",
"resources_numa",
"resources_v2",
"resources_disk_sata",
"resources_network_firmware",
"resources_disk_id",
"resources_usb_pci",
"resources_cpu_threads_numa",
"resources_cpu_core_die",
"api_os",
"resources_system",
"resources_pci_iommu",
"resources_network_usb",
"resources_disk_address"
],
"api_version": "1.0",
"environment": {
"kernel": "Linux",
"kernel_architecture": "aarch64",
"kernel_version": "5.15.0-1021-raspi",
"os_name": "ubuntu",
"os_version": "22.04",
"server": "maas-machine-resources",
"server_name": "maas",
"server_version": "5.8"
},
"resources": {
(...)
For the record, here the go.mod
dependencies I used to rebuild the go-bins:
-require github.com/lxc/lxd v0.0.0-20220801070811-efce00b764d8
+require github.com/lxc/lxd v0.0.0-20221205165740-3214f21cda7a
Can a MAAS developer update the dependencies in the upstream code?
Thanks!