blitz_api/app/api
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
..
error_report chore: clean up imports; add better LND error logging 2026-02-03 11:05:19 +01:00
__init__.py refactor: switch to domain driven directory layout 2022-10-03 20:22:00 +02:00
channel.py fix(api): release Redis connections in channel listeners/notifiers 2026-07-03 22:40:14 +02:00
config.py chore: small fixes and updates 2025-05-06 09:16:46 +02:00
constants.py feat: prepare for release 0.5.1beta 2023-02-05 21:24:31 +01:00
models.py refactor: code cleanup 2025-05-06 09:16:46 +02:00
sse_manager.py fix(api): replace deprecated asyncio.get_event_loop() 2026-07-03 22:34:44 +02:00
task_utils.py feat: implement (un)install celery task 2025-05-06 09:16:46 +02:00
utils.py fix(api): replace deprecated asyncio.get_event_loop() 2026-07-03 22:34:44 +02:00
warmup.py fix: send bitcoin-only warmup app status as app_state_update_message 2026-07-03 15:30:17 +02:00