[None][infra] use default split when CBTS test-db download fails - #15592
Conversation
📝 WalkthroughWalkthroughThe PR refactors CBTS test-sharding split-collapse into two phases: a caller-side early-skip ( ChangesCBTS Two-Phase Split-Collapse Refactor
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
jenkins/L0_Test.groovy (1)
2834-2837: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick winDo not swallow pipeline interruptions during CBTS artifact download.
The generic
catch (Exception e)also catches abort/timeout interruption paths used elsewhere in this file as hard stops. Re-throwInterruptedExceptionbefore falling back to source.Proposed fix
- } catch (Exception e) { + } catch (InterruptedException e) { + throw e + } catch (Exception e) { echo "CBTS Layer 3: artifact download failed " + "(${e.class.simpleName}: ${e.message}); falling back to source test-db" }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@jenkins/L0_Test.groovy` around lines 2834 - 2837, The CBTS artifact download fallback in the surrounding try/catch is swallowing pipeline interruption signals because the generic catch on the artifact download path also captures hard-stop cases; update the exception handling in the CBTS Layer 3 download block to detect InterruptedException and re-throw it immediately before any fallback logic, while keeping the existing source test-db fallback only for non-interruption failures. Use the existing artifact download and fallback code in L0_Test.groovy as the target, and preserve the current logging for ordinary exceptions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@jenkins/L0_Test.groovy`:
- Around line 2828-2832: The current download guard in the Jenkins flow only
checks the override directory, so a stale cbts_test_db/ can prevent re-download
even when the expected context YAML is missing. Update the logic around the
dirExists check and the subsequent artifact extraction in this block to verify
the presence of ${testContext}.yml inside the extracted context first; if it is
missing, remove the partial directory and re-download/re-extract the artifact
instead of falling back to source.
- Around line 1842-1844: The CBTS split collapse threshold is being initialized
too early from env, but it should stay at the default value at declaration time.
Keep CBTS_SPLIT_COLLAPSE_THRESHOLD as a plain `@Field` default of 20 in
L0_Test.groovy, and move the env.CBTS_SPLIT_COLLAPSE_THRESHOLD override logic
into the Setup Environment step so the value is read after startup.
---
Outside diff comments:
In `@jenkins/L0_Test.groovy`:
- Around line 2834-2837: The CBTS artifact download fallback in the surrounding
try/catch is swallowing pipeline interruption signals because the generic catch
on the artifact download path also captures hard-stop cases; update the
exception handling in the CBTS Layer 3 download block to detect
InterruptedException and re-throw it immediately before any fallback logic,
while keeping the existing source test-db fallback only for non-interruption
failures. Use the existing artifact download and fallback code in L0_Test.groovy
as the target, and preserve the current logging for ordinary exceptions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 4c35d53d-b836-4af6-ad5e-776220f792a6
📒 Files selected for processing (2)
jenkins/L0_Test.groovyjenkins/scripts/cbts/README.md
dd8c4cd to
bb07475
Compare
…t count The cbts_test_db tarball download in renderTestDB was the only wget without retry (a one-shot `wget -q`), so a transient Artifactory blip killed it while every other download on the same node survived by retrying; the stage then silently fell back to the full source test-db. - renderTestDB: wrap the download in trtllm_utils.llmExecStepWithRetry and use -nv (not -q) so it retries and a failure is visible in the log. - _cbtsMaybeCollapseSplits: replace the rigid "collapse to 1 shard when narrowed count < 20" with K = min(narrowed count, default splits). A narrowed stage now runs at most one test per shard, capped at its default N, so slow / TIMEOUT(60) cases can no longer pile into a single shard and overrun the SLURM walltime. Also guard a null CBTS result and a missing tarball (keep default splits so the source-test-db fallback shards normally instead of piling into one shard). Signed-off-by: Ivy Zhang <25222398+crazydemo@users.noreply.github.com>
|
/bot run --disable-fail-fast |
|
PR_Github #55507 [ run ] triggered by Bot. Commit: |
|
PR_Github #55507 [ run ] completed with state
|
|
/bot skip --comment "the failed stages is not related to this PR" |
|
PR_Github #55661 [ skip ] triggered by Bot. Commit: |
|
PR_Github #55661 [ skip ] completed with state |
…ils (NVIDIA#15592)" This reverts commit 7cc568c. Signed-off-by: Chenfei Zhang <chenfeiz@nvidia.com>
…DIA#15592) Signed-off-by: Ivy Zhang <25222398+crazydemo@users.noreply.github.com> Signed-off-by: Chenfei Zhang <chenfeiz@nvidia.com>
…DIA#15592) Signed-off-by: Ivy Zhang <25222398+crazydemo@users.noreply.github.com>
Summary by CodeRabbit
Description
Test Coverage
PR Checklist
Please review the following before submitting your PR:
PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.
PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.
Test cases are provided for new code paths (see test instructions)
If PR introduces API changes, an appropriate PR label is added - either
api-compatibleorapi-breaking. Forapi-breaking, includeBREAKINGin the PR title.Any new dependencies have been scanned for license and vulnerabilities
CODEOWNERS updated if ownership changes
Documentation updated as needed
Update tava architecture diagram if there is a significant design change in PR.
The reviewers assigned automatically/manually are appropriate for the PR.
Please check this after reviewing the above items as appropriate for this PR.
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.