Skip to content

[rocjitsu] Define GWS state in execution fuzzer - #14532

Merged
kuhar merged 1 commit into
developfrom
users/jakub/rocjitsu-tsan-fuzz-crashes
Oct 29, 2026
Merged

kuhar merged 1 commit into
developfrom
users/jakub/rocjitsu-tsan-fuzz-crashes

Conversation

@kuhar

@kuhar kuhar commented Oct 29, 2026

Copy link
Copy Markdown
Member

Six retained TSan fuzz inputs abort when a mutated gfx942 stream reaches DS_GWS_BARRIER before the standalone execution harness has initialized its process-scoped GWS resource. This is a deterministic harness-state failure, not a TSan race.

Arm all 64 resources for process 1 with count zero before execution. Document the contract and cover representative resource IDs with an execution-count regression test.

All six inputs pass under TSan, as do 22 focused ExecutionFuzz and MultiplexerFuzz tests. Two local Peanut review rounds completed.

Identified in #14434 (comment)

Six retained TSan fuzz inputs abort when a mutated gfx942 stream reaches DS_GWS_BARRIER before the standalone execution harness has initialized its process-scoped GWS resource. This is a deterministic harness-state failure, not a TSan race.

Arm all 64 resources for process 1 with count zero before execution. Document the contract and cover representative resource IDs with an execution-count regression test.

All six inputs pass under TSan, as do 22 focused ExecutionFuzz and MultiplexerFuzz tests. Two local Peanut review rounds completed.
@kuhar
kuhar requested review from newling and sjain-stanford and a balanced review from Copilot October 29, 2026 03:05
@kuhar
kuhar requested review from a team and atgutier as code owners October 29, 2026 03:06

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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@therock-pr-bot

therock-pr-bot Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

❌ PR Check — Action Required

Check Status Details
📝 PR Description ❌ Fail Error: PR description must reference a JIRA ID, ISSUE ID, or a GitHub closing keyword.
Expected: include a JIRA ID / ISSUE ID line (separator : or -, or omitted; value may be a JIRA key, a number with/without #, or a link), OR a closing keyword + issue reference. Accepted examples:
• JIRA ID : TESTAUTO-6039
• JIRA ID - #330
• JIRA ID #330
• JIRA ID (on separate line)
ROCM-25757
• ISSUE ID : TESTUTO-3334
• ISSUE ID #3334
• ISSUE ID - TESTAUTO-3433
• ISSUE ID (on separate line)
AIRUNTIME-2352
• ISSUE ID : https://github.com/<org_name>/<repo_name>/issues/1234
• Closes #10
• Fixes octo-org/octo-repo#100
• Resolves: #123
• #123
• https://github.com/<org_name>/<repo_name>/issues/123
Current: no valid JIRA/ISSUE/closing-keyword reference found
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —

⚠️ 1 policy check(s) failed. Please address the issues above before this PR can be Reviewed.

🚫 Please fix the failed policies

  • ❌ PR Description

The Not ready to Review label was added to this PR. Once all policies pass, the label is removed automatically.

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

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

🚫 Please fix the failed policies before requesting reviews.

The following policy checks failed:

  • ❌ PR Description

The Not ready to Review label has been added to this PR.
Once all policies pass, the label will be removed automatically.

@github-actions

Copy link
Copy Markdown
Contributor

rocjitsu presubmit fuzz passed

The 32-worker multiplexer campaigns for the merge result for PR head 68e16fb88bc0 completed without recording a crash or hang.

  • ASan+UBSan (6-minute): 634,669 input executions (1,797.31 inputs/s)
  • TSan (6-minute): 558,295 input executions (1,591.87 inputs/s)

View the workflow run.

@sjain-stanford sjain-stanford left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM modulo one comment.

throw std::runtime_error("execution fuzz wave allocation failed");
wf->set_process_id(1);
// Arbitrary streams may contain a GWS barrier without a preceding GWS INIT.
// A compute unit without a CP or engine rejects such a barrier by throwing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It would help to attribute this throw to the missing simulation engine. The harness already has a command processor, wired in config_loader.cpp:865; fail_gws_wait (compute_unit.cpp:551–555) calls request_exit when an engine is present but a CP is absent. Suggested wording: “Without a simulation engine, the compute unit reports a barrier before INIT by throwing.” This small documentation correction needn't block the harness fix.

@kuhar
kuhar merged commit 87272b5 into develop Oct 29, 2026
113 of 121 checks passed
@kuhar
kuhar deleted the users/jakub/rocjitsu-tsan-fuzz-crashes branch October 29, 2026 15:31
@github-actions

Copy link
Copy Markdown
Contributor

rocjitsu post-commit fuzz passed

The 32-worker multiplexer campaigns for commit 87272b595e9d completed without recording a crash or hang.

  • ASan+UBSan (6-minute): 602,069 input executions (1,706.37 inputs/s)
  • TSan (6-minute): 560,182 input executions (1,596.99 inputs/s)

View the workflow run.

@systems-assistant

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

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.

3 participants