Skip to content

QVAC-24079 fix: raise inactivity timeout in audio-decoder long-WAV test to stop CI flake - #4025

Merged
Victor-Rodzko merged 3 commits into
mainfrom
fix/QVAC-24079-audio-decoder-timeout-flake
Aug 25, 2026
Merged

QVAC-24079 fix: raise inactivity timeout in audio-decoder long-WAV test to stop CI flake#4025
Victor-Rodzko merged 3 commits into
mainfrom
fix/QVAC-24079-audio-decoder-timeout-flake

Conversation

@Victor-Rodzko

@Victor-Rodzko Victor-Rodzko commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

🎯 What problem does this PR solve?

  • @qvac/inference's test:bare suite intermittently fails "SDK Pod Checks" CI with Error: Audio decoding produced no output for 100ms, reported flaky by @opanin.
  • The failure could not be reliably reproduced on demand (rare CI-timing flake).

📝 How does it solve it?

  • Root cause: the affected test decodes a real 5-minute WAV through the real @qvac/decoder-audio FFmpegDecoder with inactivityTimeoutMs: 100. That decoder buffers the entire input file (async read) before decoding it in one uninterrupted synchronous burst — every output chunk lands in the same JS tick, so there's no real gap between chunks once decoding starts.
  • The only window where the inactivity timer can actually fire is during the initial async file-read/buffering phase, before decoding begins. On a loaded/shared CI runner that read can occasionally exceed 100ms, tripping the timeout — unrelated to the audio's length.
  • Fix: raise inactivityTimeoutMs for this one test to 5000ms, giving headroom for CI I/O jitter while staying far below the old fixed 10s total-decode cap the test was written to validate against. The other three tests in the file use a fully mocked decoder response and were never at risk.

🧪 How was it tested?

  • Ran the fixed test 10x locally: 10/10 pass.
  • Full npm run test for @qvac/inference: 1430/1430 tests pass.
  • Reviewed the last ~16 "PR Checks (SDK Pod)" CI runs that executed [inference] test:bare: all passed (flake is rare; confirmed root cause via temporary local timing instrumentation instead, since removed).
  • Confirmed on this PR's own CI: [inference] test:bare passed in both "SDK Pod Checks" runs, with the previously-flaky test itself completing in 593ms (well under the new 5000ms window):
    ok - a long WAV decodes fully with an inactivity window far below its total decode time # time = 593ms
    

…CI flake

The real-decode test used inactivityTimeoutMs: 100, but decoder-audio's
FFmpegDecoder buffers the whole input file before decoding it in one
synchronous burst, so the only window where the inactivity timer can
fire is during that initial async read. 100ms wasn't enough margin for
that read on a loaded CI runner, unrelated to the file's length.

QVAC-24079
@Victor-Rodzko
Victor-Rodzko requested review from a team as code owners August 24, 2026 12:51
@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Review Status

Current Status: ✅ APPROVED
Approvals so far: Team Lead: 1, Member: 1

@github-actions

Copy link
Copy Markdown
Contributor

License compliance — clean

No new dependency license findings in this PR.

Warn-only (shadow) mode — this check does not block merges yet.

Updated automatically by the canonical license compliance workflow.

NOTICE presence (advisory)

Missing NOTICE (advisory, does not block):

  • ./.github/actions/release-merge-guard
  • ./docs/website
  • ./packages/ggml-coload-smoke
  • ./packages/fabric/test/integration
  • ./packages/inference-addon-cpp/mobile
  • ./packages/sdk/e2e
  • ./packages/llm-llamacpp/benchmarks/performance
  • ./packages/llm-llamacpp/benchmarks/server
  • ./packages/vla-ggml/sim/server
  • ./packages/embed-llamacpp/benchmarks/performance
  • ./packages/embed-llamacpp/benchmarks/server
  • ./packages/asr-ggml/benchmarks/server

@Victor-Rodzko
Victor-Rodzko merged commit d839ff1 into main Aug 25, 2026
31 checks passed
@Victor-Rodzko
Victor-Rodzko deleted the fix/QVAC-24079-audio-decoder-timeout-flake branch August 25, 2026 13:31
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.

3 participants