Repository navigation
Triage trt rtx tts - #380
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 28 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (10)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
334ca70 to
2b3aada
Compare
PR Summary by QodoRoute VAD around TensorRT RTX and guard session teardown
AI Description
Diagram
High-Level Assessment
Files changed (8)
|
|
Code Review by Qodo
1.
|
Qodo Fixer🍒 Ready to be cherry-picked — ✅ Merged (0) · ☑ Fixed (2) 🔗 Fix PR: #383 This fix PR was closed automatically. Its branch is preserved so you can cherry pick the changes into the original PR. Prompt for coding agent Process — 2 fixed
|
tonythethompson
left a comment
There was a problem hiding this comment.
Review on 2b3aada. The VAD planner exclusion and the new classifier cases look right. The main concerns are in the teardown and Whisper fallback changes; details inline. Two required checks are also red on this head: Verify Code Format (whitespace in RuntimePlannerTests.cs 511-513 and OnnxExecutionSessionFactory.cs) and Verify Release Restore & Diagnostics-Free Shipping (locked-mode restore of Trackdub.Sdk.Tests fails, see the lock-file thread).
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The production pooled Whisper path remains unchanged, while the teardown workaround can leak healthy or fallback sessions and retain GPU memory.
Review effort: Balanced
Findings: 1
Open (6)
Preserve effective provider and dispose healthy sessions on eviction · New Prevent sibling session leaks during constructor failure · New Add retry and LogId handling to the pooled Whisper factory · New Dispose SessionOptions after successful session construction · New Continue provider fallback after recoverable DirectML failures · New Restore warning assertion for denied TRT-RTX provider routing · New
What changed in this PR
Hardens ONNX runtime routing and teardown after TRT-RTX failures identified in #329.
Changes:
- Routes VAD around TensorRT providers.
- Adds Whisper fallback and log attribution plumbing.
- Avoids TRT-RTX pooled-session teardown and documents triage findings.
| File | Description |
|---|---|
src/Trackdub.Inference/Runtime/Planning/StageRuntimeRequirements.cs |
Excludes TensorRT for VAD. |
src/Trackdub.Inference.Onnx/OnnxExecutionSessionFactory.cs |
Adds Whisper fallback and LogIds. |
src/Trackdub.Inference.Onnx/Pool/InferenceSessionPool.cs |
Changes TRT-RTX disposal behavior. |
tests/Trackdub.Inference.Tests/RuntimePlannerTests.cs |
Updates VAD routing tests. |
tests/Trackdub.Inference.Tests/OnnxExecutionSessionFactoryTests.cs |
Extends TRT failure classification tests. |
tests/Trackdub.Inference.Tests/GenAiTensorRtExclusionTests.cs |
Verifies VAD exclusions. |
tests/Trackdub.Sdk.Tests/packages.lock.json |
Adds the Windows target lock graph. |
docs/audits/c13-trt-rtx-shape-triage-2026-10-05.md |
Records updated #329 findings. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Review submitted — 3 inline findings on PR #380. Overall: the TRT-RTX triage changes are mostly sound (VAD planner exclusion, Whisper session-init fallback chain, Inline findings:
Out of diff: none. |
There was a problem hiding this comment.
All reported issues were addressed
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
/oc fix |
|
I've completed my analysis of the delta since the previous review (head AssessmentThis delta is a CI-fix commit addressing two previously-red required checks: Verify Code Format (trailing whitespace) and Verify Release Restore & Diagnostics-Free Shipping (locked-mode NU1004). The three changes are:
No new noteworthy issues found. The changes are correct CI fixes that don't introduce regressions. The previously-posted substantive findings (VAD test dead code / missing warning assertion, stale comment, and the broader Whisper fallback/disposal concerns) remain open from the prior review. |
|
Addressed the open review threads (commits 9cf592d, 3717f71) and resolved them:
Generated by Claude Code |
|
I've completed a thorough review of the delta since the previous review (head
Additional improvements verified: The known trade-offs (poisoned-session VRAM leak as crash containment, single-session No noteworthy issues found. |
3717f71 to
671975e
Compare
|
No noteworthy issues found. I reviewed the delta since the previous review (review_base I focused discovery on the two highest-risk boundaries:
Both hypotheses were falsified by the code's defensive design, and no concrete defect survived validation. |
- dotnet format whitespace on OnnxExecutionSessionFactory.cs and RuntimePlannerTests.cs. - Restore tests/Trackdub.Sdk.Tests/packages.lock.json to the base version; the committed copy lacked the net10.0-windows target and broke locked-mode restore (NU1004). No dependency change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RHbD2BCGvKqVEiVFpTB6rn
…llback, VAD scope - Skip native teardown only for TensorRT RTX sessions while the runtime is poisoned by an observed CUDA OOM (TensorRtRtxTeardownGuard); healthy and fallback sessions dispose normally, so eviction and shutdown release VRAM. PoolEntry tracks the effective provider through the guard, not the key. - Move the TensorRT RTX -> DirectML -> CPU Whisper fallback into CreatePooledWhisperAsync, the path production uses; keep the requested provider label and record why each provider was abandoned. Restore CreateWhisperAsync to its using-scoped single attempt (no leaked SessionOptions). - VAD excludes only TensorRT RTX (classic TensorRT stays allowed); restore the skip-warning assertion and the classic-TensorRT-before-CUDA planner test. - Drop logId parameters that no helper reads; ExtractLogId keeps the file name so encoder and decoder get distinct ids. - Tests for the guard and the pooled fallback chain. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RHbD2BCGvKqVEiVFpTB6rn
…rash follow-up Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RHbD2BCGvKqVEiVFpTB6rn
80d51ea to
25698fa
Compare
|
No noteworthy issues found. |
Main now carries #374, #380 and #382, which independently introduced the CLI binder, the working-set monitor factory, typed evidence memory and the GPU capture constructor this branch also built. Conflicts are resolved toward main everywhere it is a superset (monitor factory with SamplingWarning, injected monitorFactory, GPU capture constructor, typed StageGarbageCollection, docs). The one exception is ControlledBenchmarkCliBinder and its tests: this branch keeps the empty/option-looking value handling that main lacks. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RHbD2BCGvKqVEiVFpTB6rn
Main now carries #374, #380 and #382, which independently built the CLI binder, monitor factory, typed evidence and sampling-warning code this branch also has. Conflicts resolve toward main wherever it is a superset (docs, GPU capture constructor, DefaultSamplingInterval, production-cadence test, typed memory). This branch keeps what main lacks: the sampling ticker's LastTickTimestamp, so dilation tests measure scripted gaps instead of wall-clock, and skipping the capacity query when no VRAM floor is configured. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RHbD2BCGvKqVEiVFpTB6rn


Summary
Linked issue
Scope
Testing
dotnet build Trackdub.slnx -m:1dotnet test Trackdub.slnx -m:1Test notes
Architecture review
Trackdub.AppLicense/model impact
Risk and rollback
Milestone notes
Agent notes
Summary by cubic
Resolves the #329 triage: the reported TRT-RTX squeeze shape error originates from
silero-vad, not the TTS stage, and this PR hardens the two failure paths it exposed. VAD now routes around TensorRT RTX, pooled Whisper creation gains a DirectML/CPU fallback chain, and pooled TRT sessions skip native teardown only while the runtime is poisoned.Bug Fixes
silero-vadfails the TRT engine build on every attempt. Classic TensorRT stays allowed.Dispose()only on TensorRT RTX sessions after a CUDA OOM poisons the runtime, so teardown no longer triggers the0xC0000005crash. Healthy and DirectML/CPU fallback sessions still dispose normally.SessionOptions.LogIdfrom the model path so native TRT compile logs are attributable to the correct graph.Dispose-crash follow-up, and restoresTrackdub.Sdk.Testslocked-mode restore (NU1004).Written for commit 25698fa. Summary will update on new commits.