Skip to content

fix: retry hung TV fragment reads within the transfer deadline - #25

Merged
TheCryptoDonkey merged 1 commit into
mainfrom
fix/tv-fragment-attempt-timeout
Oct 27, 2026
Merged

TheCryptoDonkey merged 1 commit into
mainfrom
fix/tv-fragment-attempt-timeout

Conversation

@TheCryptoDonkey

Copy link
Copy Markdown
Member

Problem

Follow-up to #24. Fragment loads shared one 15 s deadline across every attempt with no per-attempt limit, so a single hung edge response consumed the whole budget, the fragment failed and the engine reset. A public reference on 2026.10.27.8 recorded two resets (signal is aborted without reason, BodyStreamBuffer was aborted) with a 9.8 s picture freeze, while a concurrent physical iPhone stayed clean.

Change

Each fragment attempt has its own 7 s limit and is retried inside the unchanged 15 s transfer deadline. Player version 2026.10.27.9; docs/tv-player.md updated.

Verification

  • New test: hung first fragment attempt is retried and succeeds without an error callback; it fails on the previous engine.
  • TV JS suites 60/60, asset check, preview tests.
  • Fault injection over the real public route (one fragment held 20 s): previous engine reset with signal is aborted without reason; this engine retried with no reset and at least 18 s of buffer throughout.

Fragment loads shared one fifteen-second deadline across every attempt
with no per-attempt limit, so a single hung edge response used the whole
budget and the engine reset. A public reference on 2026.10.27.8 recorded
two such resets ('signal is aborted without reason', 'BodyStreamBuffer was
aborted') with a 9.8 s picture freeze, while a concurrent iPhone was clean.

Each fragment attempt now has its own seven-second limit and is retried
inside the unchanged overall deadline.
@TheCryptoDonkey
TheCryptoDonkey merged commit 6eaba5e into main Oct 27, 2026
6 checks passed
@TheCryptoDonkey
TheCryptoDonkey deleted the fix/tv-fragment-attempt-timeout branch October 28, 2026 00:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant