after upgrading to Jammy and maas 3.3.4 rackd is failing with the following stacktrace
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Triaged
|
Undecided
|
Unassigned |
Bug Description
After upgrading to jammy and maas 3.3.4 rackd is throwing a stacktrace.
using debian package version/build 3.3.4-13189-
Jul 30 00:00:19 infra-2 sh[1611]: #011Traceback (most recent call last):
Jul 30 00:00:19 infra-2 sh[1611]: #011Failure: twisted.
Jul 30 00:00:19 infra-2 sh[1611]: #011
Jul 30 00:00:19 infra-2 sh[1611]: 2023-07-30 00:00:19 twisted.
Jul 30 00:00:19 infra-2 sh[1611]: 2023-07-30 00:00:19 twisted.
Jul 30 00:00:19 infra-2 sh[1611]: #011Traceback (most recent call last):
Jul 30 00:00:19 infra-2 sh[1611]: #011Failure: twisted.
Jul 30 01:31:46 infra-2 sh[1588]: 2023-07-30 01:31:46 RegionServer,
Jul 30 01:31:46 infra-2 sh[1588]: 2023-07-30 01:31:46 maasserver.ipc: [info] Worker pid:4138 lost RPC connection to ('6d4nq6', '10.100.45.12', 5251).
Jul 30 01:31:49 infra-2 sh[1611]: 2023-07-30 01:31:49 provisioningser
Jul 30 01:31:49 infra-2 sh[1611]: #011Traceback (most recent call last):
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 current.result = callback( # type: ignore[misc]
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 current_
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 result = current_
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 return g.throw(self.type, self.value, self.tb)
Jul 30 01:31:49 infra-2 sh[1611]: #011--- <exception caught here> ---
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 yield self._updateInt
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 result = current_
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 return g.throw(self.type, self.value, self.tb)
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 yield self._run_refresh(
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 result = current_
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 return g.throw(self.type, self.value, self.tb)
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 yield deferToThread(
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 result = inContext.theWork() # type: ignore[
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 inContext.theWork = lambda: context.call( # type: ignore[
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 return self.currentCon
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 return func(*args, **kw)
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 result = func(*args, **kwargs)
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 failed_scripts = runscripts(
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 post_process_hook(
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 lxd_data = json.load(fp)
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 return loads(fp.read(),
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 return _default_
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
Jul 30 01:31:49 infra-2 sh[1611]: #011 File "/usr/lib/
Jul 30 01:31:49 infra-2 sh[1611]: #011 raise JSONDecodeError
Jul 30 01:31:49 infra-2 sh[1611]: #011json.
That line comes from here: https:/
What's given in the logs is incorrect json, not sure if that's just the logger output.
function call stack
# we start here:
@inlineCall
def do_action(self):
"""Update interfaces, catching and logging errors.
This can be overridden by subclasses to conditionally update based on
some external configuration.
"""
interfaces = None
try:
yield self._updateInt
except BaseException as e:
msg = (
)
# go get the interfaces:
def getInterfaces(
"""Get the current network interfaces configuration.
This can be overridden by subclasses.
"""
return deferToThread(
# get_all_
interfaces = {}
....
for name, details in ipaddr_
# ipaddr_info comes from ipaddr.py
ifaces = parse_lxd_
_update_
# parse_lxd_
# then we call _updateInterfac
with script_
_get_resources_
/usr/share/
# interfaces is a dictionary
path = f"{prefix}
Changed in maas: | |
status: | New → Triaged |
Dm me for google drive link