The import of images stops if there is an exception in the workflow
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Committed
|
High
|
Alexsander de Souza | ||
3.5 |
Fix Released
|
High
|
Alexsander de Souza |
Bug Description
Using 3.5.0 in HA mode, in some cases we experience the following exception while importing the images
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: temporalio.
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: Traceback (most recent call last):
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: result = await impl.execute_
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: return await input.fn(
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: async for data in response.
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: rv = await self.read_func()
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: await self._wait("read")
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: await waiter
Mar 11 14:44:51 maas-ha-2 maas-regiond[2923]: aiohttp.
Mar 11 14:44:52 maas-ha-2 maas-regiond[2958]: regiond: [info] 127.0.0.1 POST /MAAS/api/
Mar 11 14:45:02 maas-ha-2 maas-regiond[2958]: regiond: [info] 127.0.0.1 POST /MAAS/api/
Mar 11 14:45:03 maas-ha-2 maas-regiond[2958]: regiond: [info] 127.0.0.1 POST /MAAS/api/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: temporalio.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: Traceback (most recent call last):
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: result = await impl.execute_
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: return await input.fn(
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: async for data in response.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: rv = await self.read_func()
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: await self._wait("read")
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: await waiter
Mar 11 14:45:05 maas-ha-2 maas-regiond[2923]: aiohttp.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: maasserver.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: Traceback (most recent call last):
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/usr/lib/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: self._target(
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return target()
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: task()
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: task()
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: --- <exception caught here> ---
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: result = inContext.theWork() # type: ignore[
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: inContext.theWork = lambda: context.call( # type: ignore[
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return self.currentCon
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return func(*args, **kw)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return func(*args, **kwargs)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: result = func(*args, **kwargs)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return func_in_
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: result.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: raise self.value.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: current.result = callback( # type: ignore[misc]
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: failure.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: self.raiseExcep
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: raise self.value.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: result = inContext.theWork() # type: ignore[
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: inContext.theWork = lambda: context.call( # type: ignore[
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return self.currentCon
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return func(*args, **kw)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return func(*args, **kwargs)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: result = func(*args, **kwargs)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return func(*args, **kwargs)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return func(*args, **kwargs)
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return _import_
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: successful = download_
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: store.finalize(
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: execute_workflow(
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: ret = asyncio.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/usr/lib/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return loop.run_
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/usr/lib/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return future.result()
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: result = await _call_workflow(
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: result = await workflow_fn(
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: return await (
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: File "/snap/
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: raise WorkflowFailure
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]: temporalio.
Mar 11 14:45:05 maas-ha-2 maas-regiond[2958]:
The cli reports
maas admin boot-resources is-importing
Success.
Machine-readable output follows:
false
It's possible to force to reproduce this by adding `raise Exception("BUM")` here https:/
In MAAS 3.4 and below, `maas admin boot-resources is-importing` would report `True` in any case until the images are properly imported.
Related branches
- MAAS Lander: Approve
- Jacopo Rota: Approve
-
Diff: 13 lines (+1/-1)1 file modifiedsrc/maasserver/workflow/bootresource.py (+1/-1)
- Alexsander de Souza: Approve
- MAAS Lander: Approve
-
Diff: 13 lines (+1/-1)1 file modifiedsrc/maasserver/workflow/bootresource.py (+1/-1)
summary: |
- Import of images are not importing anymore if there is an exception in - the workflow + The import of images stops if there is an exception in the workflow |
Changed in maas: | |
status: | Triaged → In Progress |
assignee: | nobody → Alexsander de Souza (alexsander-souza) |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
milestone: | 3.5.0 → 3.6.0 |