Skip to content

sched: return the receive status for MPI_Isendrecv - #8032

Merged
hzhou merged 1 commit into
pmodels:mainfrom
hzhou-muse:isendrecv-status
Oct 17, 2026
Merged

hzhou merged 1 commit into
pmodels:mainfrom
hzhou-muse:isendrecv-status

Conversation

@hzhou-muse

@hzhou-muse hzhou-muse commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Pull Request Description

MPI_Isendrecv and MPI_Isendrecv_replace are implemented as a schedule, and the receive entry's status was never copied to the schedule request, so MPI_Wait/MPI_Test returned an unset status (garbage source, tag, and count).

This copies the receive's source, tag, count, and cancel bit into the schedule request when the receive entry completes. Thanks to @peatman for reporting the issue in #8005 and suggesting the fix.

reproducer (2–4 ranks, with/without MPIR_CVAR_ODD_EVEN_CLIQUES=1) result
main wrong count/source/tag on every rank
this PR No Errors

Fixes #8005

Author Checklist

  • Provide Description
  • Commits Follow Good Practice
  • Passes All Tests
  • Contribution Agreement

🤖 Generated with Claude Code

@hzhou

hzhou commented Oct 16, 2026

Copy link
Copy Markdown
Collaborator

test:mpich/ch3/tcp

When the receive entry of an MPI_Isendrecv or MPI_Isendrecv_replace
schedule completes, copy its source, tag, count, and cancel bit into the
schedule request so MPI_Wait/MPI_Test report them. Previously the status
returned to the user was left unset.

Fixes pmodels#8005

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hzhou
hzhou merged commit 6377ef1 into pmodels:main Oct 17, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MPI_Status is not populated in MPI_Isendrecv

2 participants