[None][infra] Fix cbts tokenmacro b64 - #14718
Conversation
|
/bot run |
|
PR_Github #50928 [ run ] triggered by Bot. Commit: |
📝 WalkthroughWalkthroughThis PR enforces strict isolation of standalone auto-deploy packages from host TensorRT-LLM installations through test exclusions, import guards, and tightened environment isolation. In parallel, CBTS piggyback serialization switches to base64 encoding to avoid Jenkins macro evaluation failures caused by PR diff token-like fragments. ChangesStandalone package isolation and robustness
CBTS piggyback base64 encoding
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 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
🤖 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_MergeRequest.groovy`:
- Around line 782-783: Replace the platform-default byte conversion when
building the base64 payload: use an explicit UTF-8 charset when converting
inputJson to bytes (e.g., call inputJson.getBytes(StandardCharsets.UTF_8) or
inputJson.getBytes('UTF-8')) before calling encodeBase64(), and add the
necessary import for java.nio.charset.StandardCharsets if you choose that form;
update the expressions that produce inputJsonB64 (and consequently
inputJsonB64Size) to use this UTF-8 byte conversion.
In `@jenkins/L0_Test.groovy`:
- Around line 2464-2470: The code decodes cbts.cbts_input_json_b64
unconditionally which causes renderTestDB() to fail on malformed/truncated
payloads; move the decode and pipeline.writeFile logic so it only runs after
confirming dirExists != "yes", and wrap the decodeBase64()/new String(...) in a
try/catch (or validate base64) so that on any decode error you log the failure
and skip creating cbtsInputLocal, preserving the existing fallback path; update
references for cbts.cbts_input_json_b64, cbtsInputJson, cbtsInputLocal,
Utils.createTempLocation and pipeline.writeFile accordingly.
🪄 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: 886affdc-4cdc-4628-ae89-489db4a6ef7c
📒 Files selected for processing (11)
examples/auto_deploy/llmc/create_standalone_package.pyjenkins/L0_MergeRequest.groovyjenkins/L0_Test.groovyjenkins/scripts/cbts/README.mdtensorrt_llm/_torch/auto_deploy/models/custom/modeling_minimax_m2.pytensorrt_llm/_torch/auto_deploy/models/quant_config_reader.pytensorrt_llm/_torch/auto_deploy/transform/library/fuse_rope_mla.pytensorrt_llm/_torch/auto_deploy/utils/_graph.pytensorrt_llm/_torch/auto_deploy/utils/node_utils.pytests/integration/test_lists/waives.txttests/unittest/auto_deploy/standalone/test_standalone_package.py
💤 Files with no reviewable changes (1)
- tests/integration/test_lists/waives.txt
…ro evaluation
The CBTS Layer 3 piggyback stuffs the PR diff JSON into result.cbts_input_json,
which travels inside globalVars when L0_MergeRequest triggers downstream test
jobs via the Parameterized-Remote-Trigger plugin. That plugin runs tokenmacro
on parameter values before sending them, and tokenmacro raises
MacroEvaluationException when the payload contains macro-like fragments such
as ${...} or {...}. Any PR whose diff legitimately includes such syntax
(Python f-strings, shell variable references, etc.) blocks test dispatch.
Base64-encode the payload on the orchestrator and decode it on the stage
agent. The encoded character set is [A-Za-z0-9+/=], which tokenmacro never
interprets, so arbitrary diff content is now safe to ship.
The 256 KB piggyback cap is now applied to the encoded size (the bytes that
actually travel on the wire); raw payloads up to ~192 KB still fit.
Signed-off-by: Ivy Zhang <25222398+crazydemo@users.noreply.github.com>
9a6e5ca to
43b466f
Compare
|
/bot kill |
…ful decode fallback Encode side: use StandardCharsets.UTF_8 in getBytes() so the base64 payload no longer depends on the orchestrator JVM's default charset. Decode side: wrap the decodeBase64 + main.py regeneration in try/catch. A truncated or otherwise malformed payload now logs and swallows; the override directory stays absent and renderTestDB's existing overrideYaml check falls back to the source test-db. Signed-off-by: Ivy Zhang <25222398+crazydemo@users.noreply.github.com>
|
PR_Github #50936 [ kill ] triggered by Bot. Commit: |
|
/bot run |
|
PR_Github #50928 [ run ] completed with state |
|
PR_Github #50936 [ kill ] completed with state |
|
PR_Github #50939 [ run ] triggered by Bot. Commit: |
|
/bot kill |
|
PR_Github #50967 [ kill ] triggered by Bot. Commit: |
|
PR_Github #50939 [ run ] completed with state |
|
PR_Github #50967 [ kill ] completed with state |
|
/bot run --stage-list "" |
|
PR_Github #50970 [ run ] triggered by Bot. Commit: |
|
PR_Github #50970 [ run ] completed with state |
|
/bot reuse-pipeline |
|
PR_Github #50975 [ reuse-pipeline ] triggered by Bot. Commit: |
|
PR_Github #50975 [ reuse-pipeline ] completed with state |
|
/bot reuse-pipeline |
|
PR_Github #51012 [ reuse-pipeline ] triggered by Bot. Commit: |
|
PR_Github #51012 [ reuse-pipeline ] completed with state |
Summary by CodeRabbit
Tests
Documentation
Refactor
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.