Skip to content

test(rccl): Validate gin not connected path in ncclCommGetAsyncError - #11652

Merged
Kapil-Shyam-Pawar merged 1 commit into
developfrom
users/kpawar/gin-comm
Sep 16, 2026
Merged

Kapil-Shyam-Pawar merged 1 commit into
developfrom
users/kpawar/gin-comm

Conversation

@Kapil-Shyam-Pawar

Copy link
Copy Markdown
Contributor

Motivation

NCCL 2.29.7-1 (56a0c22, issue #2019) fixed ncclCommGetAsyncError to guard its GIN checks on ginState.connected instead of ginState.ncclGin, so a GIN backend that was selected but never connected no longer gets its error state polled

RCCL picked this up in #6674 (Sync v2.29.7-1), but no test covered that branch.

Technical Details

Added InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery to test/host/init-test.cc: a comm with ginState.ncclGin non-null but connected = false and the GIN fake reporting an error must still return ncclSuccess, proving the guard short-circuits before ncclGinQueryLastError runs.

Issue Tracking

JIRA ID: AICOMRCCL-1890

Test Plan

Build & Run:

bash install.sh -l -t -d --debug
cd build/debug/test/host
./rccl-UnitTestsMicroInit --gtest_filter='InitMicrotest.GetAsyncError*'

Test Result

All 9 GetAsyncError microtests pass, including the new one

[ RUN      ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery
[       OK ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery (0 ms)
[  PASSED  ] 9 tests.

The existing GetAsyncError_GinError_ReturnsRemoteError logs GIN Error detected from init.cc
The new test logs nothing, confirming the GIN block was skipped rather than entered and passed through.

Submission Checklist

@Kapil-Shyam-Pawar
Kapil-Shyam-Pawar requested review from a team and a lite review from Copilot September 15, 2026 16:59
@therock-pr-bot

Copy link
Copy Markdown

✅ All Policy Checks Passed

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ⚠️ Warning Error: Source/code files changed without an accompanying unit test.
Expected: add at least one test file named like test_<name>.py / test_<name>.cpp (or <name>_test.*).
Current: code file(s) changed: projects/rccl/test/host/init-test.cc; no test file found
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

🎉 All policy checks passed!

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

🙋 Wish to Override Policy?

Copilot AI 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.

🟢 Approval recommended

The focused regression test passes and covers the intended behavior.

Pull request overview

Adds a regression microtest for ncclCommGetAsyncError when GIN is selected but not connected.

Changes:

  • Covers a non-null, disconnected GIN state.
  • Verifies the call returns ncclSuccess without querying GIN errors.
File summaries
File Description
projects/rccl/test/host/init-test.cc Adds coverage for the disconnected GIN path.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@alex-breslow-amd alex-breslow-amd 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.

LGTM. Thank you for increasing our test coverage.

@amd-argus amd-argus 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.

ARGUS

No findings. The panel reviewed the changed files it was given and flagged nothing above Nit
level.

Bottom line: LGTM.

Comment @argus review to re-run, or @argus re-review after pushing.

@amd-argus amd-argus 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.

ARGUS

Bottom line: LGTM. 1 finding(s) below Low not posted this round; comment @argus re-review full for a full pass if you want them.

Comment @argus review to re-run, or @argus re-review after pushing.

@Kapil-Shyam-Pawar
Kapil-Shyam-Pawar merged commit 5605ad9 into develop Sep 16, 2026
48 of 52 checks passed
@Kapil-Shyam-Pawar
Kapil-Shyam-Pawar deleted the users/kpawar/gin-comm branch September 16, 2026 13:14
@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

corey-derochie-amd pushed a commit that referenced this pull request Oct 14, 2026
…11652)

## Motivation

NCCL 2.29.7-1
([56a0c22](NVIDIA/nccl@56a0c22),
[issue #2019](NVIDIA/nccl#2019)) fixed
`ncclCommGetAsyncError` to guard its GIN checks on `ginState.connected`
instead of `ginState.ncclGin`, so a GIN backend that was selected but
never connected no longer gets its error state polled

RCCL picked this up in
[#6674](#6674) (Sync
v2.29.7-1), but no test covered that branch.

## Technical Details

Added `InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery` to
`test/host/init-test.cc`: a comm with `ginState.ncclGin` non-null but
`connected = false` and the GIN fake reporting an error must still
return `ncclSuccess`, proving the guard short-circuits before
`ncclGinQueryLastError` runs.

## Issue Tracking

JIRA ID: AICOMRCCL-1890

## Test Plan

Build & Run:
```
bash install.sh -l -t -d --debug
cd build/debug/test/host
./rccl-UnitTestsMicroInit --gtest_filter='InitMicrotest.GetAsyncError*'
```

## Test Result

All 9 `GetAsyncError` microtests pass, including the new one
```
[ RUN      ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery
[       OK ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery (0 ms)
[  PASSED  ] 9 tests.
```

The existing `GetAsyncError_GinError_ReturnsRemoteError` logs GIN Error
detected from `init.cc`
The new test logs nothing, confirming the GIN block was skipped rather
than entered and passed through.

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
corey-derochie-amd pushed a commit that referenced this pull request Oct 15, 2026
…11652)

## Motivation

NCCL 2.29.7-1
([56a0c22](NVIDIA/nccl@56a0c22),
[issue #2019](NVIDIA/nccl#2019)) fixed
`ncclCommGetAsyncError` to guard its GIN checks on `ginState.connected`
instead of `ginState.ncclGin`, so a GIN backend that was selected but
never connected no longer gets its error state polled

RCCL picked this up in
[#6674](#6674) (Sync
v2.29.7-1), but no test covered that branch.

## Technical Details

Added `InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery` to
`test/host/init-test.cc`: a comm with `ginState.ncclGin` non-null but
`connected = false` and the GIN fake reporting an error must still
return `ncclSuccess`, proving the guard short-circuits before
`ncclGinQueryLastError` runs.

## Issue Tracking

JIRA ID: AICOMRCCL-1890

## Test Plan

Build & Run:
```
bash install.sh -l -t -d --debug
cd build/debug/test/host
./rccl-UnitTestsMicroInit --gtest_filter='InitMicrotest.GetAsyncError*'
```

## Test Result

All 9 `GetAsyncError` microtests pass, including the new one
```
[ RUN      ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery
[       OK ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery (0 ms)
[  PASSED  ] 9 tests.
```

The existing `GetAsyncError_GinError_ReturnsRemoteError` logs GIN Error
detected from `init.cc`
The new test logs nothing, confirming the GIN block was skipped rather
than entered and passed through.

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
corey-derochie-amd pushed a commit that referenced this pull request Oct 15, 2026
…11652)

## Motivation

NCCL 2.29.7-1
([56a0c22](NVIDIA/nccl@56a0c22),
[issue #2019](NVIDIA/nccl#2019)) fixed
`ncclCommGetAsyncError` to guard its GIN checks on `ginState.connected`
instead of `ginState.ncclGin`, so a GIN backend that was selected but
never connected no longer gets its error state polled

RCCL picked this up in
[#6674](#6674) (Sync
v2.29.7-1), but no test covered that branch.

## Technical Details

Added `InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery` to
`test/host/init-test.cc`: a comm with `ginState.ncclGin` non-null but
`connected = false` and the GIN fake reporting an error must still
return `ncclSuccess`, proving the guard short-circuits before
`ncclGinQueryLastError` runs.

## Issue Tracking

JIRA ID: AICOMRCCL-1890

## Test Plan

Build & Run:
```
bash install.sh -l -t -d --debug
cd build/debug/test/host
./rccl-UnitTestsMicroInit --gtest_filter='InitMicrotest.GetAsyncError*'
```

## Test Result

All 9 `GetAsyncError` microtests pass, including the new one
```
[ RUN      ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery
[       OK ] InitMicrotest.GetAsyncError_GinNotConnected_SkipsTheGinQuery (0 ms)
[  PASSED  ] 9 tests.
```

The existing `GetAsyncError_GinError_ReturnsRemoteError` logs GIN Error
detected from `init.cc`
The new test logs nothing, confirming the GIN block was skipped rather
than entered and passed through.

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/rocm-systems/blob/develop/CONTRIBUTING.md.
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.

5 participants