Importing boot resources failed

Bug #2056223 reported by Anton Troyanov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MAAS
Fix Committed
High
Alexsander de Souza
3.5
Fix Committed
High
Alexsander de Souza

Bug Description

maas 1:3.5.0~beta1-16214-g.1eeea8524-0ubuntu1~22.04.1

Multiple errors reported during boot resources download. Eventually all images are synced, but this Tracebacks looks scary.

Mar 05 16:54:54 maas-deb regiond[10395]: maasserver.bootresources: [critical] Importing boot resources failed.
Mar 05 16:54:54 maas-deb regiond[10395]: Traceback (most recent call last):
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3.10/threading.py", line 953, in run
Mar 05 16:54:54 maas-deb regiond[10395]: self._target(*self._args, **self._kwargs)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 821, in worker
Mar 05 16:54:54 maas-deb regiond[10395]: return target()
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/_threads/_threadworker.py", line 47, in work
Mar 05 16:54:54 maas-deb regiond[10395]: task()
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/_threads/_team.py", line 182, in doWork
Mar 05 16:54:54 maas-deb regiond[10395]: task()
Mar 05 16:54:54 maas-deb regiond[10395]: --- <exception caught here> ---
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 244, in inContext
Mar 05 16:54:54 maas-deb regiond[10395]: result = inContext.theWork() # type: ignore[attr-defined]
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 260, in <lambda>
Mar 05 16:54:54 maas-deb regiond[10395]: inContext.theWork = lambda: context.call( # type: ignore[attr-defined]
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 117, in callWithContext
Mar 05 16:54:54 maas-deb regiond[10395]: return self.currentContext().callWithContext(ctx, func, *args, **kw)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 82, in callWithContext
Mar 05 16:54:54 maas-deb regiond[10395]: return func(*args, **kw)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 856, in callInContext
Mar 05 16:54:54 maas-deb regiond[10395]: return func(*args, **kwargs)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 203, in wrapper
Mar 05 16:54:54 maas-deb regiond[10395]: result = func(*args, **kwargs)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 137, in wrapper
Mar 05 16:54:54 maas-deb regiond[10395]: return func_in_reactor(*args, **kwargs).wait(LONGTIME)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/crochet/_eventloop.py", line 198, in wait
Mar 05 16:54:54 maas-deb regiond[10395]: result.raiseException()
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/failure.py", line 475, in raiseException
Mar 05 16:54:54 maas-deb regiond[10395]: raise self.value.with_traceback(self.tb)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 857, in _runCallbacks
Mar 05 16:54:54 maas-deb regiond[10395]: current.result = callback( # type: ignore[misc]
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/bootresources.py", line 905, in eb_import
Mar 05 16:54:54 maas-deb regiond[10395]: failure.trap(DatabaseLockNotHeld)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/failure.py", line 451, in trap
Mar 05 16:54:54 maas-deb regiond[10395]: self.raiseException()
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/failure.py", line 475, in raiseException
Mar 05 16:54:54 maas-deb regiond[10395]: raise self.value.with_traceback(self.tb)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 244, in inContext
Mar 05 16:54:54 maas-deb regiond[10395]: result = inContext.theWork() # type: ignore[attr-defined]
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/threadpool.py", line 260, in <lambda>
Mar 05 16:54:54 maas-deb regiond[10395]: inContext.theWork = lambda: context.call( # type: ignore[attr-defined]
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 117, in callWithContext
Mar 05 16:54:54 maas-deb regiond[10395]: return self.currentContext().callWithContext(ctx, func, *args, **kw)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 82, in callWithContext
Mar 05 16:54:54 maas-deb regiond[10395]: return func(*args, **kw)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 856, in callInContext
Mar 05 16:54:54 maas-deb regiond[10395]: return func(*args, **kwargs)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 203, in wrapper
Mar 05 16:54:54 maas-deb regiond[10395]: result = func(*args, **kwargs)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/utils/orm.py", line 726, in call_with_connection
Mar 05 16:54:54 maas-deb regiond[10395]: return func(*args, **kwargs)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/utils/__init__.py", line 177, in call_with_lock
Mar 05 16:54:54 maas-deb regiond[10395]: return func(*args, **kwargs)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/bootresources.py", line 1028, in _import_resources_with_lock
Mar 05 16:54:54 maas-deb regiond[10395]: return _import_resources_internal(notify)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/bootresources.py", line 990, in _import_resources_internal
Mar 05 16:54:54 maas-deb regiond[10395]: successful = download_all_boot_resources(
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/bootresources.py", line 852, in download_all_boot_resources
Mar 05 16:54:54 maas-deb regiond[10395]: store.finalize(notify=notify)
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/bootresources.py", line 647, in finalize
Mar 05 16:54:54 maas-deb regiond[10395]: execute_workflow(
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/workflow/__init__.py", line 35, in wrapper
Mar 05 16:54:54 maas-deb regiond[10395]: ret = asyncio.run(func(*args, **kwargs))
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
Mar 05 16:54:54 maas-deb regiond[10395]: return loop.run_until_complete(main)
Mar 05 16:54:54 maas-deb regiond[10395]: File "uvloop/loop.pyx", line 1501, in uvloop.loop.Loop.run_until_complete
Mar 05 16:54:54 maas-deb regiond[10395]:
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/workflow/__init__.py", line 72, in execute_workflow
Mar 05 16:54:54 maas-deb regiond[10395]: result = await _call_workflow(
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/maasserver/workflow/__init__.py", line 53, in _call_workflow
Mar 05 16:54:54 maas-deb regiond[10395]: result = await workflow_fn(
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/temporalio/client.py", line 568, in execute_workflow
Mar 05 16:54:54 maas-deb regiond[10395]: return await (
Mar 05 16:54:54 maas-deb regiond[10395]: File "/usr/lib/python3/dist-packages/temporalio/client.py", line 1107, in result
Mar 05 16:54:54 maas-deb regiond[10395]: raise WorkflowFailureError(
Mar 05 16:54:54 maas-deb regiond[10395]: temporalio.client.WorkflowFailureError: Workflow execution failed
Mar 05 16:54:54 maas-deb regiond[10395]:
Mar 05 16:54:55 maas-deb regiond[10398]: regiond: [info] 127.0.0.1 POST /MAAS/api/2.0/images-sync-progress/ HTTP/1.1 --> 200 OK (referrer: -; agent: maas/3.5.0~beta1/16214-g.1eeea8524/7f430d9a-112e-42db-9595-34944e299f3c)
Mar 05 16:55:09 maas-deb regiond[10398]: maasserver: [error] ################################ Exception: I/O operation on closed file. ################################
Mar 05 16:55:09 maas-deb regiond[10398]: maasserver: [error] Traceback (most recent call last):
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 181, in _get_response
Mar 05 16:55:09 maas-deb regiond[10398]: response = wrapped_callback(request, *callback_args, **callback_kwargs)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/maasserver/utils/views.py", line 298, in view_atomic_with_post_commit_savepoint
Mar 05 16:55:09 maas-deb regiond[10398]: return view_atomic(*args, **kwargs)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3.10/contextlib.py", line 79, in inner
Mar 05 16:55:09 maas-deb regiond[10398]: return func(*args, **kwds)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/maasserver/api/support.py", line 62, in __call__
Mar 05 16:55:09 maas-deb regiond[10398]: response = super().__call__(request, *args, **kwargs)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/views/decorators/vary.py", line 20, in inner_func
Mar 05 16:55:09 maas-deb regiond[10398]: response = func(*args, **kwargs)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/piston3/resource.py", line 151, in __call__
Mar 05 16:55:09 maas-deb regiond[10398]: actor, anonymous = self.authenticate(request, rm)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/piston3/resource.py", line 128, in authenticate
Mar 05 16:55:09 maas-deb regiond[10398]: if not authenticator.is_authenticated(request):
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/maasserver/api/auth.py", line 72, in is_authenticated
Mar 05 16:55:09 maas-deb regiond[10398]: if self.is_valid_request(request):
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/piston3/authentication.py", line 355, in is_valid_request
Mar 05 16:55:09 maas-deb regiond[10398]: post_params = request.POST
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/core/handlers/wsgi.py", line 102, in _get_post
Mar 05 16:55:09 maas-deb regiond[10398]: self._load_post_and_files()
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/http/request.py", line 373, in _load_post_and_files
Mar 05 16:55:09 maas-deb regiond[10398]: self._post, self._files = QueryDict(self.body, encoding=self._encoding), MultiValueDict()
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/http/request.py", line 338, in body
Mar 05 16:55:09 maas-deb regiond[10398]: self._body = self.read()
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/http/request.py", line 393, in read
Mar 05 16:55:09 maas-deb regiond[10398]: return self._stream.read(*args, **kwargs)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/core/handlers/wsgi.py", line 34, in read
Mar 05 16:55:09 maas-deb regiond[10398]: result = self.buffer + self._read_limited()
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/django/core/handlers/wsgi.py", line 28, in _read_limited
Mar 05 16:55:09 maas-deb regiond[10398]: result = self.stream.read(size)
Mar 05 16:55:09 maas-deb regiond[10398]: File "/usr/lib/python3/dist-packages/twisted/web/wsgi.py", line 193, in read
Mar 05 16:55:09 maas-deb regiond[10398]: return self._wrapped.read(size)
Mar 05 16:55:09 maas-deb regiond[10398]: ValueError: I/O operation on closed file

Related branches

Revision history for this message
Jerzy Husakowski (jhusakowski) wrote :

This is due to a known bug in aiohttp package (https://github.com/aio-libs/aiohttp/issues/4581). Instead of producing a traceback, MAAS should emit a friendlier message that the download will be retried, as Temporal takes care of ensuring a successful download.

Changed in maas:
assignee: nobody → Alexsander de Souza (alexsander-souza)
status: Triaged → In Progress
Changed in maas:
status: In Progress → Fix Committed
Changed in maas:
milestone: 3.5.0 → 3.6.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.