Skip to content

test(rccl): suppress core dumps in expected-crash tests - #11744

Merged
dhanavikram merged 2 commits into
developfrom
users/dhanavikram/aicomrccl-2364-death-test-speed
Sep 17, 2026
Merged

dhanavikram merged 2 commits into
developfrom
users/dhanavikram/aicomrccl-2364-death-test-speed

Conversation

@dhanavikram

Copy link
Copy Markdown
Contributor

Motivation

The RCCL host-only init microtests contain expected-crash tests that deliberately raise SIGFPE or SIGSEGV.

When core dumps are enabled, a shuffled death test can inherit a large address space from earlier tests. Writing the resulting core dump can turn a millisecond-scale assertion into a 20+ second test.

Technical Details

Disable core dumps inside the three expected-crash child processes before executing the code under test.

The limit is changed only inside the GoogleTest death-test child. The parent test process retains its original core-dump policy, so unexpected suite crashes remain debuggable.

Issue Tracking

JIRA ID: AICOMRCCL-2364

Test Plan

Built the following targets:

  • rccl-UnitTestsMicroInit
  • rccl-UnitTestsMicroInit-uncached
  • rccl-UnitTestsMicroInit-faultinj

Ran the complete InitMicrotest.* and InitMicrotestIsolated.* suites through run_host_tests.sh with coverage and shuffling.

GTEST_FILTER='InitMicrotest.*:InitMicrotestIsolated.*'   HOST_TEST_SHUFFLE='--gtest_shuffle --gtest_random_seed=79347'   ./run_host_tests.sh run     --gtest_death_test_style=threadsafe     --gtest_brief=1
./test/host/run_host_tests.sh all

Test Result

  • Normal init variant: 690 passed
  • Uncached init variant: 689 passed
  • Fault-injection init variant: 690 passed
  • Expected-crash subset completed in 4–8 ms per binary
  • Slowest death/isolated test was approximately 0.051 seconds
  • No core files were generated.

@dhanavikram
dhanavikram requested review from a team September 17, 2026 05:49
@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?

@dhanavikram dhanavikram self-assigned this Sep 17, 2026

@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: Looks approval ready. The only open question is whether the CI runners use a piped core_pattern, which would blunt the speed win, and that does not need another pass from me.

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

Comment thread projects/rccl/test/host/init-test.cc Resolved
Signed-off-by: Dhanavikram Sekar <dsekar@amd.com>
@dhanavikram
dhanavikram force-pushed the users/dhanavikram/aicomrccl-2364-death-test-speed branch from c1035d5 to 50d6b27 Compare September 17, 2026 17:42

@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: Nothing new worth raising; still open from earlier: init-test.cc:191. Worth clearing before approval.

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

Signed-off-by: Dhanavikram Sekar <dsekar@amd.com>
@dhanavikram

Copy link
Copy Markdown
Contributor Author

@argus re-review

@mch mch 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.

Excellent, it's taking about 9 seconds to run all of the tests on my laptop now.

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

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

@dhanavikram
dhanavikram merged commit 59b1ffd into develop Sep 17, 2026
43 of 47 checks passed
@dhanavikram
dhanavikram deleted the users/dhanavikram/aicomrccl-2364-death-test-speed branch September 17, 2026 20:26
@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
## Motivation

The RCCL host-only init microtests contain expected-crash tests that
deliberately raise SIGFPE or SIGSEGV.

When core dumps are enabled, a shuffled death test can inherit a large
address space from earlier tests. Writing the resulting core dump can
turn a millisecond-scale assertion into a 20+ second test.

## Technical Details

Disable core dumps inside the three expected-crash child processes
before executing the code under test.

The limit is changed only inside the GoogleTest death-test child. The
parent test process retains its original core-dump policy, so unexpected
suite crashes remain debuggable.

## Issue Tracking

JIRA ID: AICOMRCCL-2364

## Test Plan

Built the following targets:

- `rccl-UnitTestsMicroInit`
- `rccl-UnitTestsMicroInit-uncached`
- `rccl-UnitTestsMicroInit-faultinj`

Ran the complete `InitMicrotest.*` and `InitMicrotestIsolated.*` suites
through `run_host_tests.sh` with coverage and shuffling.

```
GTEST_FILTER='InitMicrotest.*:InitMicrotestIsolated.*'   HOST_TEST_SHUFFLE='--gtest_shuffle --gtest_random_seed=79347'   ./run_host_tests.sh run     --gtest_death_test_style=threadsafe     --gtest_brief=1
```

```
./test/host/run_host_tests.sh all
```

## Test Result

- Normal init variant: 690 passed
- Uncached init variant: 689 passed
- Fault-injection init variant: 690 passed
- Expected-crash subset completed in 4–8 ms per binary
- Slowest death/isolated test was approximately 0.051 seconds
- No core files were generated.

---------

Signed-off-by: Dhanavikram Sekar <dsekar@amd.com>
corey-derochie-amd pushed a commit that referenced this pull request Oct 15, 2026
## Motivation

The RCCL host-only init microtests contain expected-crash tests that
deliberately raise SIGFPE or SIGSEGV.

When core dumps are enabled, a shuffled death test can inherit a large
address space from earlier tests. Writing the resulting core dump can
turn a millisecond-scale assertion into a 20+ second test.

## Technical Details

Disable core dumps inside the three expected-crash child processes
before executing the code under test.

The limit is changed only inside the GoogleTest death-test child. The
parent test process retains its original core-dump policy, so unexpected
suite crashes remain debuggable.

## Issue Tracking

JIRA ID: AICOMRCCL-2364

## Test Plan

Built the following targets:

- `rccl-UnitTestsMicroInit`
- `rccl-UnitTestsMicroInit-uncached`
- `rccl-UnitTestsMicroInit-faultinj`

Ran the complete `InitMicrotest.*` and `InitMicrotestIsolated.*` suites
through `run_host_tests.sh` with coverage and shuffling.

```
GTEST_FILTER='InitMicrotest.*:InitMicrotestIsolated.*'   HOST_TEST_SHUFFLE='--gtest_shuffle --gtest_random_seed=79347'   ./run_host_tests.sh run     --gtest_death_test_style=threadsafe     --gtest_brief=1
```

```
./test/host/run_host_tests.sh all
```

## Test Result

- Normal init variant: 690 passed
- Uncached init variant: 689 passed
- Fault-injection init variant: 690 passed
- Expected-crash subset completed in 4–8 ms per binary
- Slowest death/isolated test was approximately 0.051 seconds
- No core files were generated.

---------

Signed-off-by: Dhanavikram Sekar <dsekar@amd.com>
corey-derochie-amd pushed a commit that referenced this pull request Oct 15, 2026
## Motivation

The RCCL host-only init microtests contain expected-crash tests that
deliberately raise SIGFPE or SIGSEGV.

When core dumps are enabled, a shuffled death test can inherit a large
address space from earlier tests. Writing the resulting core dump can
turn a millisecond-scale assertion into a 20+ second test.

## Technical Details

Disable core dumps inside the three expected-crash child processes
before executing the code under test.

The limit is changed only inside the GoogleTest death-test child. The
parent test process retains its original core-dump policy, so unexpected
suite crashes remain debuggable.

## Issue Tracking

JIRA ID: AICOMRCCL-2364

## Test Plan

Built the following targets:

- `rccl-UnitTestsMicroInit`
- `rccl-UnitTestsMicroInit-uncached`
- `rccl-UnitTestsMicroInit-faultinj`

Ran the complete `InitMicrotest.*` and `InitMicrotestIsolated.*` suites
through `run_host_tests.sh` with coverage and shuffling.

```
GTEST_FILTER='InitMicrotest.*:InitMicrotestIsolated.*'   HOST_TEST_SHUFFLE='--gtest_shuffle --gtest_random_seed=79347'   ./run_host_tests.sh run     --gtest_death_test_style=threadsafe     --gtest_brief=1
```

```
./test/host/run_host_tests.sh all
```

## Test Result

- Normal init variant: 690 passed
- Uncached init variant: 689 passed
- Fault-injection init variant: 690 passed
- Expected-crash subset completed in 4–8 ms per binary
- Slowest death/isolated test was approximately 0.051 seconds
- No core files were generated.

---------

Signed-off-by: Dhanavikram Sekar <dsekar@amd.com>
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.

4 participants