Stopping debusine-signing.service or debusine-worker.service results in a failed systemd state
Expected behavior systemctl stop debusine-signing leaves the service in a successfully exited state. Actual behavior:
2025-09-18 11:09:07,124 Terminated with signal SIGTERM
Traceback (most recent call last):
File "/usr/bin/debusine-signing", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/lib/python3/dist-packages/debusine/__main__.py", line 56, in main
execute_from_command_line(sys.argv)
File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python3/dist-packages/django/core/management/base.py", line 412, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/lib/python3/dist-packages/debusine/django/management/debusine_base_command.py", line 64, in execute
super().execute(*args, **options)
File "/usr/lib/python3/dist-packages/django/core/management/base.py", line 458, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debusine/signing/management/commands/signing_worker.py", line 57, in handle
asyncio.run(worker.main())
File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debusine/worker/_worker.py", line 220, in main
await self.connect()
File "/usr/lib/python3/dist-packages/debusine/worker/_worker.py", line 386, in connect
await _do_wait_for_messages()
File "/usr/lib/python3/dist-packages/tenacity/_asyncio.py", line 88, in async_wrapped
return await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/tenacity/_asyncio.py", line 47, in __call__
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/tenacity/__init__.py", line 314, in iter
return fut.result()
^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/usr/lib/python3/dist-packages/tenacity/_asyncio.py", line 50, in __call__
result = await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/debusine/worker/_worker.py", line 347, in _do_wait_for_messages
async with self._aiohttp_client_session.ws_connect(
File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 1141, in __aenter__
self._resp = await self._coro
^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 779, in _ws_connect
resp = await self.request(
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/aiohttp/client.py", line 400, in _request
raise RuntimeError("Session is closed")
RuntimeError: Session is closed
debusine-signing.service: Main process exited, code=exited, status=1/FAILURE
debusine-signing.service: Failed with result 'exit-code'.
Stopped debusine-signing.service - Debusine Signing Worker.