blitz_api/app/apps/tasks_impl
fusion44 5aa79acb10
fix(apps): don't release another task's app-manage lock
app_manage_task_impl released APP_MANAGE_LOCK_KEY and broadcast a
FINISHED message from its finally block unconditionally, including on
the early-return path where acquire_lock reported the lock as already
held by a running install. A duplicate install/uninstall request would
therefore delete the running task's lock (allowing concurrent
management of the same app) and send FINISHED, which stopped that
task's AppManageListener before it was done.

Track whether this task actually acquired the lock and only
release + finish when it did.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 20:01:54 +02:00
..
__init__.py feat: implement (un)install celery task 2025-05-06 09:16:46 +02:00
app_manage.py fix(apps): don't release another task's app-manage lock 2026-07-03 20:01:54 +02:00
app_status_update.py fix: don't stop app status listener 2025-05-06 09:16:46 +02:00
listeners.py fix: don't stop app status listener 2025-05-06 09:16:46 +02:00