andrewmusselman opened a new issue, #320:
URL: https://github.com/apache/tooling-trusted-releases/issues/320
I'm running from `main` up to date, but this has been happening reliably for
me; when I save files while developing the server crashes. Here is an example
when adding a comment to a file and saving:
```
$ make serve-local
APP_HOST=localhost.apache.org:8080 SECRET_KEY=insecure-local-key \
ALLOW_TESTS=1 SSH_HOST=127.0.0.1 uv run hypercorn --bind 127.0.0.1:8080 \
--keyfile localhost.apache.org+3-key.pem --certfile
localhost.apache.org+3.pem \
atr.server:app --debug --reload
Working directory changed to:
/home/akm/a/src/org/apache/tooling-trusted-releases/state
Working directory changed to:
/home/akm/a/src/org/apache/tooling-trusted-releases/state
No new upgrade operations detected.
INFO [ 2025-11-14 12:48:14.540 ] 464590 <atr.db.create> Applying
database migrations via init_database... __init__.py:796
INFO [ 2025-11-14 12:48:14.540 ] 464590 <atr.db.create> Setting Alembic
URL for command: __init__.py:803
sqlite:////home/akm/a/src/org/apache/tooling-trusted-releases/state/atr.db
INFO [ 2025-11-14 12:48:14.542 ] 464590 <atr.db.create> Setting Alembic
script_location for command: __init__.py:808
/home/akm/a/src/org/apache/tooling-trusted-releases/migrations
INFO [ 2025-11-14 12:48:14.542 ] 464590 <atr.db.create> Running alembic
upgrade head... __init__.py:812
INFO [ 2025-11-14 12:48:14.544 ] 464590 <alembic.runtime.migration>
Context impl SQLiteImpl. migration.py:211
INFO [ 2025-11-14 12:48:14.544 ] 464590 <alembic.runtime.migration> Will
assume non-transactional DDL. migration.py:214
INFO [ 2025-11-14 12:48:14.556 ] 464590 <atr.db.create> Database
migrations applied successfully __init__.py:814
INFO [ 2025-11-14 12:48:14.556 ] 464590 <atr.db.create> Running alembic
check... __init__.py:820
INFO [ 2025-11-14 12:48:14.558 ] 464590 <alembic.runtime.migration>
Context impl SQLiteImpl. migration.py:211
INFO [ 2025-11-14 12:48:14.558 ] 464590 <alembic.runtime.migration> Will
assume non-transactional DDL. migration.py:214
INFO [ 2025-11-14 12:48:14.617 ] 464590 <atr.db.create> Alembic check
passed: DB schema matches models __init__.py:822
INFO [ 2025-11-14 12:48:14.626 ] 464590
<atr.manager.WorkerManager.start> Starting worker manager in
manager.py:68
/home/akm/a/src/org/apache/tooling-trusted-releases/state
INFO [ 2025-11-14 12:48:14.652 ] 464590 <asyncio> execute program
base_events.py:1792
'/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/bin/python':
<_UnixSubprocessTransport pid=464642
running>
INFO [ 2025-11-14 12:48:14.652 ] 464590
<atr.manager.WorkerManager.spawn_worker> Started worker process 464642
manager.py:173
INFO [ 2025-11-14 12:48:14.668 ] 464590 <asyncio> execute program
base_events.py:1792
'/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/bin/python':
<_UnixSubprocessTransport pid=464643
running>
INFO [ 2025-11-14 12:48:14.669 ] 464590
<atr.manager.WorkerManager.spawn_worker> Started worker process 464643
manager.py:173
INFO [ 2025-11-14 12:48:14.685 ] 464590 <asyncio> execute program
base_events.py:1792
'/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/bin/python':
<_UnixSubprocessTransport pid=464644
running>
INFO [ 2025-11-14 12:48:14.685 ] 464590
<atr.manager.WorkerManager.spawn_worker> Started worker process 464644
manager.py:173
INFO [ 2025-11-14 12:48:14.704 ] 464590 <asyncio> execute program
base_events.py:1792
'/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/bin/python':
<_UnixSubprocessTransport pid=464645
running>
INFO [ 2025-11-14 12:48:14.705 ] 464590
<atr.manager.WorkerManager.spawn_worker> Started worker process 464645
manager.py:173
INFO [ 2025-11-14 12:48:14.809 ] 464590 <atr.server.startup> Starting
PubSub SVN listener server.py:178
INFO [ 2025-11-14 12:48:14.812 ] 464590 <atr.server.startup> PubSub SVN
listener task created server.py:187
INFO [ 2025-11-14 12:48:14.815 ] 464590
<atr.svn.pubsub.SVNListener.start> SVNListener.start() called
pubsub.py:57
INFO [ 2025-11-14 12:48:14.899 ] 464590 <asyncssh> Creating SSH listener
on 127.0.0.1, port 2222 logging.py:102
INFO [ 2025-11-14 12:48:14.903 ] 464590 <asyncio> <Server
sockets=(<asyncio.TransportSocket fd=22, family=2, type=1, base_events.py:1647
proto=6, laddr=('127.0.0.1', 2222)>,)> is serving
INFO [ 2025-11-14 12:48:14.903 ] 464590 <atr.ssh.server_start> SSH
server started on 127.0.0.1:2222 ssh.py:140
INFO [ 2025-11-14 12:48:14.904 ] 464590 <atr.server.log_debug_info>
DEBUG = True server.py:282
INFO [ 2025-11-14 12:48:14.904 ] 464590 <atr.server.log_debug_info>
ENVIRONMENT = Debug server.py:283
INFO [ 2025-11-14 12:48:14.904 ] 464590 <atr.server.log_debug_info>
STATE_DIR = server.py:284
/home/akm/a/src/org/apache/tooling-trusted-releases/state
[2025-11-14 12:48:14 -0800] [464590] [INFO] Running on
https://127.0.0.1:8080 (CTRL + C to quit)
INFO [ 2025-11-14 12:48:14.927 ] 464590 <asyncio> <Server
sockets=(<asyncio.TransportSocket fd=3, family=2, type=1, base_events.py:1647
proto=0, laddr=('127.0.0.1', 8080)>,)> is serving
INFO [ 2025-11-14 12:48:14.927 ] 464590 <hypercorn.error> Running on
https://127.0.0.1:8080 (CTRL + C to quit) logging.py:106
INFO [ 2025-11-14 12:49:14.808 ] 464590
<atr.server._metadata_update_scheduler> Scheduled remote metadata update with
ID server.py:337
27
WARNING [ 2025-11-14 12:53:52.166 ] 464590 <asyncio> Executing <Task
pending name='Task-485' base_events.py:2029
coro=<ASGIHTTPConnection.handle_request() running at
/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/quart/asgi.py:108>
wait_for=<Future pending cb=[shield.<locals>._outer_done_callback()
at
/usr/lib/python3.13/asyncio/tasks.py:975, Task.task_wakeup()]
created at
/usr/lib/python3.13/asyncio/base_events.py:459>
cb=[_wait.<locals>._on_completion() at
/usr/lib/python3.13/asyncio/tasks.py:521] created at
/usr/lib/python3.13/asyncio/tasks.py:748> took 0.133
seconds
INFO [ 2025-11-14 12:56:05.269 ] 464590 <atr.manager.WorkerManager.stop>
Stopping worker manager manager.py:83
INFO [ 2025-11-14 12:56:05.854 ] 464590 <asyncio>
<_UnixSubprocessTransport pid=464644 running> exited with
base_subprocess.py:229
return code 0
INFO [ 2025-11-14 12:56:05.885 ] 464590 <asyncio>
<_UnixSubprocessTransport pid=464645 running> exited with
base_subprocess.py:229
return code 0
INFO [ 2025-11-14 12:56:05.913 ] 464590 <asyncio>
<_UnixSubprocessTransport pid=464643 running> exited with
base_subprocess.py:229
return code 0
INFO [ 2025-11-14 12:56:05.928 ] 464590 <asyncio>
<_UnixSubprocessTransport pid=464642 running> exited with
base_subprocess.py:229
return code 0
INFO [ 2025-11-14 12:56:05.932 ] 464590 <atr.ssh.server_stop> SSH server
stopped ssh.py:148
ERROR [ 2025-11-14 12:56:05.932 ] 464590 <atr.server> Exception
app.py:1155
Traceback (most recent call last):
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/quart/app.py",
line
1793, in shutdown
await self.ensure_async(func)()
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/atr/server.py", line 222,
in shutdown
await task
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/atr/svn/pubsub.py", line
58, in start
async for payload in asfpy.pubsub.listen(
...<14 lines>...
await self._process_payload(payload)
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/asfpy/pubsub.py",
line
78, in listen
async for payload in _process_connection(session, pubsub_url):
...<6 lines>...
yield payload
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/asfpy/pubsub.py",
line
103, in _process_connection
async with session.get(pubsub_url) as conn:
~~~~~~~~~~~^^^^^^^^^^^^
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/aiohttp/client.py",
line
1510, in __aenter__
self._resp: _RetType = await self._coro
^^^^^^^^^^^^^^^^
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/aiohttp/client.py",
line
639, in _request
raise err_exc_cls(url)
aiohttp.client_exceptions.InvalidUrlClientError: commit/svn
Process SpawnProcess-1:
Traceback (most recent call last):
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/quart/asgi.py",
line 382, in __call__
await self.app.shutdown()
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/quart/app.py",
line 1793, in shutdown
await self.ensure_async(func)()
File "/home/akm/a/src/org/apache/tooling-trusted-releases/atr/server.py",
line 222, in shutdown
await task
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/atr/svn/pubsub.py", line
58, in start
async for payload in asfpy.pubsub.listen(
...<14 lines>...
await self._process_payload(payload)
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/asfpy/pubsub.py",
line 78, in listen
async for payload in _process_connection(session, pubsub_url):
...<6 lines>...
yield payload
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/asfpy/pubsub.py",
line 103, in _process_connection
async with session.get(pubsub_url) as conn:
~~~~~~~~~~~^^^^^^^^^^^^
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/aiohttp/client.py",
line 1510, in __aenter__
self._resp: _RetType = await self._coro
^^^^^^^^^^^^^^^^
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/aiohttp/client.py",
line 639, in _request
raise err_exc_cls(url)
aiohttp.client_exceptions.InvalidUrlClientError: commit/svn
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.13/multiprocessing/process.py", line 313, in
_bootstrap
self.run()
~~~~~~~~^^
File "/usr/lib/python3.13/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/hypercorn/asyncio/run.py",
line 196, in asyncio_worker
_run(
~~~~^
partial(worker_serve, app, config, sockets=sockets),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
debug=config.debug,
^^^^^^^^^^^^^^^^^^^
shutdown_trigger=shutdown_trigger,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/hypercorn/asyncio/run.py",
line 234, in _run
runner.run(main(shutdown_trigger=shutdown_trigger))
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib/python3.13/asyncio/base_events.py", line 719, in
run_until_complete
return future.result()
~~~~~~~~~~~~~^^
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/hypercorn/asyncio/run.py",
line 181, in worker_serve
await lifespan_task
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/hypercorn/asyncio/lifespan.py",
line 55, in handle_lifespan
await self.app(
...<5 lines>...
)
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/hypercorn/app_wrappers.py",
line 34, in __call__
await self.app(scope, receive, send)
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/quart/app.py",
line 1735, in __call__
await self.asgi_app(scope, receive, send)
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/quart/app.py",
line 1761, in asgi_app
await asgi_handler(receive, send)
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/quart/asgi.py",
line 384, in __call__
await send(
...<4 lines>...
)
File
"/home/akm/a/src/org/apache/tooling-trusted-releases/.venv/lib/python3.13/site-packages/hypercorn/asyncio/lifespan.py",
line 122, in asgi_send
raise LifespanFailureError("shutdown", message.get("message", ""))
hypercorn.utils.LifespanFailureError: Lifespan failure in shutdown.
'commit/svn'
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]