Skip to content

AetherEngine 5.17.4

Choose a tag to compare

@superuser404notfound superuser404notfound released this 21 Jul 15:48

Fixed

  • -15410 when the LOCAL segment producer stalls (SSAI cutter wedge) while LL-HLS blocking-reload is latched ON, including a second one right after the stall watchdog's item reload. Follow-up to the 5.16.0 observed-cadence fix (#167): the cadence policy observes ingest arrivals, which keep flowing while the cutter is wedged, so it cannot see this failure mode. The held ?_HLS_msn= reload waited on a segment that will never be cut, timed out, and was answered with the unchanged playlist (no requested MSN), which AVPlayer flags as invalid blocking-reload behavior; the stall watchdog's item reload against the same zombie server immediately re-armed a second hold.

    Three coordinated changes:

    • The local server answers an unsatisfiable held blocking reload with a retriable 503 (RFC 8216bis) instead of a spec-invalid unchanged 200. Satisfied holds and the gate-off immediate serve are unchanged.
    • The segment provider gains a terminal production-halted latch that beats the host liveBlockingReload override and the cadence policy, and releases parked waiters immediately (they 503 now instead of sleeping out their hold).
    • Every live pump exit that delegates to host retune (segmentStall, sourceReplay, non-URL-reopenable pump deaths) latches it, so blocking-reload stops being advertised for the rest of the session, including a client-initiated item reload against the same server. Reopenable URL exits keep cutting into the same provider and do not latch.

    Reported by G00380316 (#167 retest). Covered by LiveProductionHaltTests (resolver precedence, exit-reason classification, waiter release, socket-level 503/200 response shapes).

No public API changes.