Dispatcharr/apps/proxy
SergeantPanda 820959e390 fix(live): prevent ghost channel sessions from blocking playback indefinitely
This update resolves an issue where ghost channel sessions stuck in the `initializing` state could block playback requests indefinitely. The initialization process now ensures that the `initializing` state is only written to Redis after acquiring the channel ownership lock, preventing race conditions that could leave sessions without an owner. Additionally, failed initializations are cleaned up immediately, allowing subsequent play requests to retry without hitting a stopping gate. The changes enhance the reliability of channel initialization and playback handling. Tests have been updated to validate these improvements.
2026-07-19 16:08:24 +00:00
..
hls_proxy security: Hardened the HLS proxy change_stream endpoint by converting it from a plain Django view to a DRF @api_view with @permission_classes([IsAdmin]), ensuring the endpoint actually enforces admin-only access. The previous decorator arrangement (@csrf_exempt + @permission_classes) had no effect on a plain Django view. 2026-04-09 19:58:40 -05:00
live_proxy fix(live): prevent ghost channel sessions from blocking playback indefinitely 2026-07-19 16:08:24 +00:00
management/commands fix(connections): ensure proper cleanup of geventpool checkouts across various components 2026-07-19 14:32:51 +00:00
tests fix(proxy): enhance stream switching logic and error handling 2026-07-11 18:21:48 +00:00
vod_proxy fix(vod): prevent stale profile connection reservations in Redis-backed VOD sessions (Fixes #1426) 2026-07-17 21:35:32 +00:00
__init__.py Initial integration. 2025-03-03 18:40:30 -06:00
apps.py fix(connections): ensure proper cleanup of geventpool checkouts across various components 2026-07-19 14:32:51 +00:00
config.py feat(catchup): enhance catchup functionality with user and system settings 2026-07-18 18:55:51 +00:00
signals.py fix(connections): ensure proper cleanup of geventpool checkouts across various components 2026-07-19 14:32:51 +00:00
stats_views.py feat(timeshift): add catch-up playback, stats, and admin APIs 2026-07-11 17:14:31 +00:00
tasks.py feat(timeshift): add catch-up playback, stats, and admin APIs 2026-07-11 17:14:31 +00:00
urls.py refactor(permissions): enhance permission handling across various viewsets 2026-07-18 20:03:03 +00:00
utils.py feat(timeshift): add catch-up playback, stats, and admin APIs 2026-07-11 17:14:31 +00:00
views.py Initial integration. 2025-03-03 18:40:30 -06:00