Skip to content

[None][fix] Keep ADP ranks in collective lockstep on request errors and fail fast on desync - #16687

Merged
zhaoyangwang-nvidia merged 2 commits into
NVIDIA:mainfrom
roborluo:bofengl/fix-adp-enqueue-responses-desync
Aug 14, 2026
Merged

[None][fix] Keep ADP ranks in collective lockstep on request errors and fail fast on desync#16687
zhaoyangwang-nvidia merged 2 commits into
NVIDIA:mainfrom
roborluo:bofengl/fix-adp-enqueue-responses-desync

Conversation

@roborluo

@roborluo roborluo commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Under attention DP, _enqueue_responses performs a tp_gather; collectives must be entered by every rank in the same order. A request-scoped error can be observed by only one rank, so directly publishing its response can cross the peers' next collective (usually tp_allgather(batch_size)).

This change:

  1. Buffers non-fatal ADP error responses and flushes them at shared executor-loop safepoints.
  2. Uses one end-of-loop flush rather than a second flush in can_queue iterations.
  3. Flushes before the retry and clean-scheduler-exit paths, so buffered client errors are not silently stranded.
  4. Fails fast on malformed gathered response payloads, giving a clear collective-desynchronization error.
  5. Avoids publishing a rank-local fatal error through a TP response gather; it shuts down locally instead of risking another rank-divergent collective.

Test Coverage

Added focused unit coverage for buffered-response delivery, empty ADP participation, retry/shutdown exits, the single-flush behavior, and rank-local fatal handling.

Local macOS validation:

  • python3 -m py_compile — passed
  • git diff --check — passed
  • Pytest cannot import the CUDA-dependent TensorRT-LLM runtime on macOS (cuda-python has no supported macOS bindings); full test execution needs CUDA/Linux CI.

PR Checklist

  • PR title follows the required format
  • PR description clearly explains the issue and solution
  • Commits are signed off (DCO)
  • Coding guidelines followed (yapf clean)

Dev Engineer Review

  • Attention-DP synchronization: Buffers non-fatal transfer responses and flushes them at synchronized executor safepoints.
  • Exit handling: Flushes pending responses before shutdown, benchmark retries, completed executor passes, and overlap-loop exits.
  • Fatal errors: Handles rank-local fatal errors locally and avoids divergent TP response gathers.
  • Collective validation: Ignores None contributions and raises a bounded RuntimeError for malformed gathered payloads.
  • Scope: No public API, configuration, or test-list changes.
  • Regression review: The added collective remains synchronized because can_queue is TP-uniform under Attention-DP.

QA Engineer Review

  • Added test coverage: TestPendingTransferResponseFlush covers rank-local fatal errors, empty Attention-DP participation, buffered response delivery and clearing, rank-zero request termination, normal executor exits, benchmark retries, idle passes, and overlap-loop flushes.
  • Test-list coverage: No tests/integration/test_lists/ files changed. The unit tests are not listed in test-db/ or qa/ files.
  • Verdict: sufficient.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

PyExecutor buffers transfer responses until synchronized publication. It flushes responses during executor-loop passes, shutdown, benchmark retries, and error handling. Attention-DP gathering validates collective payloads and coordinates fatal and non-fatal errors by rank.

Changes

Attention-DP Response Coordination

Layer / File(s) Summary
Buffer and flush transfer responses
tensorrt_llm/_torch/pyexecutor/py_executor.py
Request termination waits until buffered transfer responses are synchronously published.
Flush responses across executor-loop exits and passes
tensorrt_llm/_torch/pyexecutor/py_executor.py, tests/unittest/_torch/executor/test_py_executor.py
Executor passes flush pending responses after processing and before shutdown, idle exits, and benchmark retries. Tests cover normal, idle, and overlap-loop cleanup without duplicate flushes.
Coordinate Attention-DP errors and validate gathers
tensorrt_llm/_torch/pyexecutor/py_executor.py, tests/unittest/_torch/executor/test_py_executor.py
Attention-DP paths buffer non-fatal errors, avoid rank-local fatal gathers, and re-raise fatal errors. Collective gathering ignores None, accepts list or tuple payloads, and raises a diagnostic RuntimeError for malformed payloads. Tests cover local errors, ADP participation, and rank-zero delivery.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ExecutorLoop
  participant ErrorHandler
  participant AttentionDPGather
  participant PendingTransferResponses
  ExecutorLoop->>ErrorHandler: process current executor errors
  ErrorHandler->>AttentionDPGather: gather synchronized responses
  AttentionDPGather-->>ErrorHandler: return validated contributions
  ErrorHandler->>PendingTransferResponses: buffer or publish responses
  ExecutorLoop->>PendingTransferResponses: flush after each loop pass
Loading

Suggested reviewers: tabrizian, yihuilu512

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 52.38% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title follows the required format and clearly identifies the ADP collective lockstep and desynchronization fix.
Description check ✅ Passed The description includes the required summary, test coverage, and checklist sections, with clear issue, solution, and validation details.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 `@tensorrt_llm/_torch/pyexecutor/py_executor.py`:
- Around line 6644-6651: Replace the unbounded resp!r interpolation in
_enqueue_responses with a bounded, safe summary that cannot expose full response
contents or depend on an unsafe custom __repr__. Preserve the existing type
information and collective-desynchronization context in the RuntimeError
message.
- Around line 6634-6652: Update the response-merging logic in _enqueue_responses
to validate every item in each gathered list or tuple before calling
gather_responses.extend. Require each entry to be a two-field response
structure, rejecting malformed values such as scalar entries or entries with the
wrong length via the same clear RuntimeError path, then extend only validated
entries.
🪄 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: f54097f4-1650-45d1-9543-e3eb9780cce6

📥 Commits

Reviewing files that changed from the base of the PR and between 6fabfdc and afaf86c.

📒 Files selected for processing (1)
  • tensorrt_llm/_torch/pyexecutor/py_executor.py

Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py
Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py
roborluo added a commit to roborluo/TensorRT-LLM that referenced this pull request Jul 21, 2026
…t errors

Under attention DP, _enqueue_responses gathers per-rank response lists
via tp_gather, and TP collectives pair by call order, not by type.
_handle_errors is reached only by the rank(s) that observed an error:
for request-scoped failures such as a failed disagg generation KV
transfer, a single rank enqueues its error responses solo while the
other ranks proceed to the per-step tp_allgather(batch_size). The
collectives cross: the erroring rank deserializes a response-list
payload inside safe_allgather (UnpicklingError: pickle data was
truncated) and rank 0's response gather receives a stray batch-size
int (TypeError: 'int' object is not iterable in
gather_responses.extend), while the remaining ranks hang until the
hang detector fires.

Observed on a GB300 TP8 ADP disagg gen server: rank 2 hit
'Error occurred during generation transfer' (dataTransceiver.cpp),
entered _handle_errors, and its solo gather crossed with peers'
_can_queue allgather in the same iteration.

Fix: on the non-fatal path, buffer error responses in
_pending_transfer_responses instead of enqueueing directly. The
buffer is flushed at _flush_pending_transfer_responses, which every
rank executes unconditionally at synchronized points in the executor
loops, so the gather is always entered in lockstep. Fatal errors keep
the direct enqueue since the executor is shutting down. This covers
every per-rank-divergent caller of _handle_errors in one place.

Same failure family as the per-rank-divergent collective entry fixed
in NVIDIA#14020; complements the fail-fast diagnostic in NVIDIA#16687.

Signed-off-by: Bofeng Luo <bofengl@nvidia.com>
@roborluo roborluo changed the title [None][fix] Fail fast on ADP TP collective desync in _enqueue_responses [None][fix] Keep ADP ranks in collective lockstep on request errors and fail fast on desync Jul 21, 2026
@roborluo

Copy link
Copy Markdown
Contributor Author

/bot run --disable-fail-fast

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 `@tensorrt_llm/_torch/pyexecutor/py_executor.py`:
- Around line 6527-6539: Move the _flush_pending_transfer_responses() call out
of the can_queue-guarded block in the non-overlap scheduling loop so it executes
at an unconditional, rank-symmetric point. Ensure it also runs when no batch can
be queued, while preserving collective ordering across ranks and existing
behavior when a batch is available.
- Around line 6527-6539: The non-fatal attention-DP path must retain each
request’s result queue until its buffered error response is flushed. Update the
termination flow around _do_terminate_request and
_flush_pending_transfer_responses so result_wait_queues entries are not removed
before _enqueue_responses can deliver the response; perform cleanup after
synchronized flushing, while preserving immediate cleanup for paths that do not
buffer responses.
🪄 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: 2f30393e-ae51-46b8-a77a-16dcd2986907

📥 Commits

Reviewing files that changed from the base of the PR and between afaf86c and 33bd50a.

📒 Files selected for processing (1)
  • tensorrt_llm/_torch/pyexecutor/py_executor.py

Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py Outdated
@roborluo roborluo closed this Jul 21, 2026
@roborluo roborluo reopened this Jul 21, 2026
@roborluo

Copy link
Copy Markdown
Contributor Author

/bot run --disable-fail-fast

roborluo added a commit to roborluo/TensorRT-LLM that referenced this pull request Jul 21, 2026
…t errors

Under attention DP, _enqueue_responses gathers per-rank response lists
via tp_gather, and TP collectives pair by call order, not by type.
_handle_errors is reached only by the rank(s) that observed an error:
for request-scoped failures such as a failed disagg generation KV
transfer, a single rank enqueues its error responses solo while the
other ranks proceed to the per-step tp_allgather(batch_size). The
collectives cross: the erroring rank deserializes a response-list
payload inside safe_allgather (UnpicklingError: pickle data was
truncated) and rank 0's response gather receives a stray batch-size
int (TypeError: 'int' object is not iterable in
gather_responses.extend), while the remaining ranks hang until the
hang detector fires.

Observed on a GB300 TP8 ADP disagg gen server: rank 2 hit
'Error occurred during generation transfer' (dataTransceiver.cpp),
entered _handle_errors, and its solo gather crossed with peers'
_can_queue allgather in the same iteration.

Fix: on the non-fatal path, buffer error responses in
_pending_transfer_responses instead of enqueueing directly. The
buffer is flushed at _flush_pending_transfer_responses, which every
rank executes unconditionally at synchronized points in the executor
loops, so the gather is always entered in lockstep. Fatal errors keep
the direct enqueue since the executor is shutting down. This covers
every per-rank-divergent caller of _handle_errors in one place.

Same failure family as the per-rank-divergent collective entry fixed
in NVIDIA#14020; complements the fail-fast diagnostic in NVIDIA#16687.

Signed-off-by: Bofeng Luo <bofengl@nvidia.com>
@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from 33bd50a to 8f1ea81 Compare July 21, 2026 22:15
@roborluo

Copy link
Copy Markdown
Contributor Author

/bot run --disable-fail-fast

roborluo added a commit to roborluo/TensorRT-LLM that referenced this pull request Jul 21, 2026
…t errors

Under attention DP, _enqueue_responses gathers per-rank response lists
via tp_gather, and TP collectives pair by call order, not by type.
_handle_errors is reached only by the rank(s) that observed an error:
for request-scoped failures such as a failed disagg generation KV
transfer, a single rank enqueues its error responses solo while the
other ranks proceed to the per-step tp_allgather(batch_size). The
collectives cross: the erroring rank deserializes a response-list
payload inside safe_allgather (UnpicklingError: pickle data was
truncated) and rank 0's response gather receives a stray batch-size
int (TypeError: 'int' object is not iterable in
gather_responses.extend), while the remaining ranks hang until the
hang detector fires.

Observed on a GB300 TP8 ADP disagg gen server: rank 2 hit
'Error occurred during generation transfer' (dataTransceiver.cpp),
entered _handle_errors, and its solo gather crossed with peers'
_can_queue allgather in the same iteration.

Fix: on the non-fatal path, buffer error responses in
_pending_transfer_responses instead of enqueueing directly. The
buffer is flushed at _flush_pending_transfer_responses, which every
rank executes unconditionally at synchronized points in the executor
loops, so the gather is always entered in lockstep. Fatal errors keep
the direct enqueue since the executor is shutting down. This covers
every per-rank-divergent caller of _handle_errors in one place.

Same failure family as the per-rank-divergent collective entry fixed
in NVIDIA#14020; complements the fail-fast diagnostic in NVIDIA#16687.

Signed-off-by: Bofeng Luo <bofengl@nvidia.com>
@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from 8f1ea81 to dcc4dc6 Compare July 21, 2026 23:54
@roborluo

Copy link
Copy Markdown
Contributor Author

Addressed review feedback in the amended commit:

  1. Unconditional flush in the non-overlap loop — added _flush_pending_transfer_responses() outside the if can_queue block (next to _handle_kv_transfer_timeouts_synced(), which exists for the same reason), mirroring the overlap loop's unconditional flush. Buffered error responses are now delivered even when no rank can queue a batch. can_queue is TP-uniform under attention DP (it is the result of the _can_queue consensus allgather), so the additional collective stays in lockstep.
  2. Bounded desync error message — dropped the unbounded resp!r from the RuntimeError; the type name is the diagnostic signal (the known mismatch partner is an int batch size).

Not taken: per-entry (two-field tuple) validation of gathered items. The guard targets crossed collectives, where the stray payload is a non-list scalar; contributions that are lists of malformed entries would indicate a different bug and still fail loudly at the unpack in the consumer loop.

@roborluo

Copy link
Copy Markdown
Contributor Author

/bot run --disable-fail-fast

@chienchunhung chienchunhung left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR!

Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py
Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py Outdated
Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py Outdated
Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py Outdated
Comment thread tensorrt_llm/_torch/pyexecutor/py_executor.py
@roborluo

roborluo commented Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the comments, Will check

@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from dcc4dc6 to 12b5e6f Compare August 9, 2026 00:30

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 `@tests/unittest/_torch/executor/test_py_executor.py`:
- Around line 1937-1949: Initialize the missing is_benchmark_disagg attribute in
_make_executor_loop_stub, using the default non-benchmark value expected by
_executor_loop before entering its loop. Keep the existing stub setup unchanged
otherwise.
- Around line 1887-2019: Add a focused test for PyExecutor._enqueue_responses
that mocks tp_gather() to return [1] and verifies the method raises RuntimeError
matching "TP collective desync". Initialize only the executor state and
dependencies required by _enqueue_responses, keeping the test alongside the
existing response-flush coverage.
🪄 Autofix

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: a1d4bc35-8fda-40b6-ae2d-f74ef7140ccc

📥 Commits

Reviewing files that changed from the base of the PR and between dcc4dc6 and 12b5e6f.

📒 Files selected for processing (2)
  • tensorrt_llm/_torch/pyexecutor/py_executor.py
  • tests/unittest/_torch/executor/test_py_executor.py

Comment thread tests/unittest/_torch/executor/test_py_executor.py
Comment thread tests/unittest/_torch/executor/test_py_executor.py
@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch 2 times, most recently from 577def0 to 7e8c912 Compare August 9, 2026 00:49
@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from 713d49d to 0fe5df7 Compare August 9, 2026 01:23
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from 0fe5df7 to f15f0b2 Compare August 9, 2026 01:31
@roborluo

roborluo commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

/bot run --disable-fail-fast

@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from f15f0b2 to 67296bc Compare August 10, 2026 16:31
@roborluo

Copy link
Copy Markdown
Contributor Author

/bot run --disable-fail-fast

@roborluo

Copy link
Copy Markdown
Contributor Author

Fixed some format issue. No logical change. Sorry first time contribute to TRTLLM

@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from 67296bc to 7d74e24 Compare August 11, 2026 18:02
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

Signed-off-by: Bofeng Luo <bofengl@nvidia.com>
@roborluo
roborluo force-pushed the bofengl/fix-adp-enqueue-responses-desync branch from 7d74e24 to 45ad013 Compare August 11, 2026 18:05
@roborluo

Copy link
Copy Markdown
Contributor Author

/bot run --disable-fail-fast

1 similar comment
@zhaoyangwang-nvidia

Copy link
Copy Markdown
Collaborator

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65433 [ run ] triggered by Bot. Commit: 45ad013 Link to invocation

@zhaoyangwang-nvidia
zhaoyangwang-nvidia enabled auto-merge (squash) August 12, 2026 01:33
@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65433 [ run ] completed with state FAILURE. Commit: 45ad013
/LLM/main/L0_MergeRequest_PR pipeline #53184 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

… ADP fatal alignment explicit

CI L0_MergeRequest_PR #53184 failed on this PR (x86_64 + SBSA + GPU stages).

Unit tests (test_py_executor.py::TestPendingTransferResponseFlush):
- LlmResponse() -> LlmResponse(request_id=...) (request_id is required).
- hang_detector mocked as MagicMock() (it is used as a context manager;
  plain Mock() does not support the protocol).
- dist.mapping.tp_group set to an iterable so _enqueue_responses' rank check
  works under the non-ADP flush path.

_handle_errors ADP fatal handling (test_disagg_inflight_cancel_gate.py::
test_preclassified_fatal_error_keeps_adp_response_collectives_aligned raised
"already fatal"):
- Distinguish a synchronized (collective-aligned) fatal from a novel
  rank-local one. Instead of inferring alignment from `self._fatal_error is
  not None` (which a rank-local setter could trip, recreating the desync this
  PR prevents), add an explicit `fatal_is_collective_aligned` parameter that
  only the synchronized caller (_handle_disagg_cache_errors_synced, after its
  world allreduce) passes. A synchronized fatal publishes/terminates in
  lockstep across ranks and does not raise; a novel rank-local fatal skips the
  tp_gather and raises for local teardown.
- Update test_disagg_inflight_cancel_gate.py to the explicit protocol.

Signed-off-by: Bofeng Luo <bofengl@nvidia.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
auto-merge was automatically disabled August 13, 2026 01:05

Head branch was pushed to by a user without write access

@zhaoyangwang-nvidia

Copy link
Copy Markdown
Collaborator

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65732 [ run ] triggered by Bot. Commit: b026d6d Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65732 [ run ] completed with state FAILURE. Commit: b026d6d
/LLM/main/L0_MergeRequest_PR pipeline #53448 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@zeroepoch

Copy link
Copy Markdown
Collaborator

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65813 [ run ] triggered by Bot. Commit: b026d6d Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65813 [ run ] completed with state FAILURE. Commit: b026d6d
/LLM/main/L0_MergeRequest_PR pipeline #53515 completed with status: 'UNSTABLE'

CI Report

⚠️ Multi-GPU Label Required:
Multi-GPU tests require the ci: full pre-merge approved label on this PR. Ask a member of NVIDIA/trt-llm-ci-approvers to add the label, then re-trigger CI with the same bot command (no rebase needed).

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

Link to invocation

@tburt-nv

Copy link
Copy Markdown
Collaborator

/bot run --disable-fail-fast

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65998 [ run ] triggered by Bot. Commit: b026d6d Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65998 [ run ] completed with state SUCCESS. Commit: b026d6d
/LLM/main/L0_MergeRequest_PR pipeline #53685 completed with status: 'SUCCESS'
Pipeline passed with automatic retried tests. Check the rerun report for details.

CI Report

Link to invocation

@zhaoyangwang-nvidia
zhaoyangwang-nvidia merged commit 09b77e8 into NVIDIA:main Aug 14, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants