Skip to content

Attempting to retry a piuparts workflow yields HTTP/500

Attempting to retry a piuparts workflow yields a HTTP/500 result. The log has a little more detail:

Error running work request Workflow/piuparts (68292): orchestrator failed: Cannot determine architecture for lookup result: LookupResult(result_type=_CollectionItemTypes.ARTIFACT, collection_item=<CollectionItem: Id: 837227 Name: build-all Parent collection id: 77 Child type: a Artifact id: 1131669>, artifact=<Artifact: Id: 1131669 Category: debian:upload Workspace: 1>, collection=None)

Surprisingly, the server/errors.log has more detail than the journal despite efforts to dump all of it to to the journal.

2024-12-28 06:34:46,302 [log/832739/140435834009280] ERROR: Internal Server Error: /debusine/System/work-request/68292/retry/
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/debusine/server/workflows/base.py", line 531, in orchestrate_workflow
    orchestrator.populate()
  File "/usr/lib/python3/dist-packages/debusine/server/workflows/piuparts.py", line 40, in populate
    architectures = self.get_architectures(self.data.binary_artifacts)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/server/workflows/base.py", line 447, in get_architectures
    return {self.lookup_result_architecture(result) for result in results}
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/server/workflows/base.py", line 447, in <setcomp>
    return {self.lookup_result_architecture(result) for result in results}
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/server/workflows/base.py", line 409, in lookup_result_architecture
    raise ValueError(
ValueError: Cannot determine architecture for lookup result: LookupResult(result_type=_CollectionItemTypes.ARTIFACT, collection_item=<CollectionItem: Id: 837227 Name: build-all Parent collection id: 77 Child type: a Artifact id: 1131669>, artifact=<Artifact: Id: 1131669 Category: debian:upload Workspace: 1>, collection=None)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 486, in thread_handler
    raise exc_info[1]
  File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 42, in inner
    response = await get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 486, in thread_handler
    raise exc_info[1]
  File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 253, in _get_response_async
    response = await wrapped_callback(
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 448, in __call__
    ret = await asyncio.wait_for(future, timeout=None)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/tasks.py", line 442, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/lib/python3/dist-packages/asgiref/current_thread_executor.py", line 22, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 490, in thread_handler
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/contextlib.py", line 81, in inner
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 104, in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/web/views/base.py", line 121, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/django/views/generic/base.py", line 143, in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/web/views/work_request.py", line 454, in post
    return self.retry(work_request)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/web/views/work_request.py", line 441, in retry
    new_work_request = work_request.retry()
                       ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/db/models/work_requests.py", line 1005, in retry
    return self._retry_workflow()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/debusine/db/models/work_requests.py", line 912, in _retry_workflow
    orchestrate_workflow(self)
  File "/usr/lib/python3/dist-packages/asgiref/sync.py", line 302, in main_wrap
    raise exc_info[1]
  File "/usr/lib/python3/dist-packages/debusine/server/workflows/base.py", line 533, in orchestrate_workflow
    raise WorkflowRunError(
debusine.server.workflows.base.WorkflowRunError: (<WorkRequest: 68292>, 'orchestrator failed: Cannot determine architecture for lookup result: LookupResult(result_type=_CollectionItemTypes.ARTIFACT, collection_item=<CollectionItem: Id: 837227 Name: build-all Parent collection id: 77 Child type: a Artifact id: 1131669>, artifact=<Artifact: Id: 1131669 Category: debian:upload Workspace: 1>, collection=None)')
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information