Fix MPI-Checker false positive in MPIRequest::wait()#37901
Open
Fix MPI-Checker false positive in MPIRequest::wait()#37901
Conversation
…nsive checks Co-authored-by: blozano-tt <181790211+blozano-tt@users.noreply.github.com>
Copilot
AI
requested review from
a team,
aliuTT,
cfjchu,
jbaumanTT,
nhuang-tt and
tt-asaigal
as code owners
February 14, 2026 08:17
Co-authored-by: blozano-tt <181790211+blozano-tt@users.noreply.github.com>
…values Co-authored-by: blozano-tt <181790211+blozano-tt@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix nonblocking call issue in MPI distributed context
Fix MPI-Checker false positive in MPIRequest::wait()
Feb 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket
N/A
Problem description
Clang Static Analyzer's
optin.mpi.MPI-Checkerwarns at line 128: "Request has no matching nonblocking call". This is a false positive—the analyzer cannot trackMPI_Requestobjects through class members. The request is properly initialized viaMPI_Isend/MPI_Irecvin factory methods before being passed toMPIRequestconstructor.What's changed
Suppression: Added
NOLINT(clang-analyzer-optin.mpi.MPI-Checker)toMPI_WaitandMPI_Testcalls.Defensive checks: Added
if (done_)guards inwait()andtest()to prevent double-wait/test. AfterMPI_Waitcompletes,req_is set toMPI_REQUEST_NULLby MPI; subsequent calls return sentinel values.Documentation:
MPI_Requestfrom nonblocking call)MPI_ANY_SOURCE/MPI_ANY_TAGindicate no-op, not wildcards)active()before callingwait()Impact: 18 lines added (mostly comments), 2 NOLINT suppressions. No functional changes to correct usage.
Checklist
Model tests
If your changes cover model-related code, you should run tests corresponding to affected models and platforms (Single card, T3K, Galaxy). "Choose your pipeline" workflows facilitate running multiple kinds of tests in a single run. Each offers
models-mandatoryandmodels-extendedpresets.The former includes a minimal set of tests, to be run always. The latter extends that with additional ones - use your best judgement in deciding which is the most appropriate for your PR.
models-mandatorypreset (runs: Device perf regressions and Frequent model and ttnn tests)models-extendedpreset (runs: the mandatory tests, plus Demo and Model perf tests)models-mandatorypreset (runs: Unit tests)models-extendedpreset (runs: the mandatory tests, plus Demo and Model perf tests)models-mandatorypreset (runs: Quick tests)models-extendedpreset (runs: the mandatory tests, plus Demo and Model perf tests)Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.