blitz_api/app/apps
fusion44 a9bbc9a27c
Some checks failed
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
fix(api): release Redis connections in channel listeners/notifiers
BaseChannelListener.listen() only called pubsub.unsubscribe() in its
finally block: the pubsub connection and the listener's own Redis client
were never released, leaking a connection for every install/uninstall
(_watcher) and every recreation of the app-status listener. The Celery
task notifiers were likewise never closed, and used the deprecated
Redis.close() instead of aclose().

- add aclose() to BaseChannelNotifier and BaseChannelListener
- listen() now closes the pubsub and its Redis client in finally
- close the notifiers in the app_manage / app_status_update tasks and
  switch to aclose()
- back off in the app-status watch loop so a Redis outage no longer
  spins, and drop a leftover debug print

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 22:40:14 +02:00
..
impl fix(apps): honour keep_data on uninstall and fix install log name 2026-07-03 20:58:35 +02:00
tasks_impl fix(api): release Redis connections in channel listeners/notifiers 2026-07-03 22:40:14 +02:00
cache.py fix(api): release Redis connections in channel listeners/notifiers 2026-07-03 22:40:14 +02:00
constants.py refactor: code cleanup 2025-05-06 09:16:46 +02:00
docs.py feat: update get app status error handling code 2025-05-06 09:16:46 +02:00
models.py chore: clean up imports; add better LND error logging 2026-02-03 11:05:19 +01:00
router.py fix(api): replace deprecated asyncio.get_event_loop() 2026-07-03 22:34:44 +02:00
service.py fix(api): replace deprecated asyncio.get_event_loop() 2026-07-03 22:34:44 +02:00
tasks.py feat: implement (un)install celery task 2025-05-06 09:16:46 +02:00
utils.py feat: update get app status error handling code 2025-05-06 09:16:46 +02:00