-
-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MWE with multiple window arrays in one-sided comm #807
Comments
Furthermore, asking for |
I think the issue is that the spec states that This should probably be documented. |
What does
do? I don't think we define a |
Yeah, in the documentation for WinCreate, it says, "MPI.free should be called on the Win object once operations have been completed.". I think MUST is a better word than should. The challenge is that the garbage collector will eventually pick it up so it looks like MPI.Finalize is doing cleanup when it is not. These are minor points that cost me time almost entirely because the program hangs instead of crashes. |
Would you mind making a change to the documentation? We could make it so that if the GC is invoked and the object hasn't been cleaned, then we print a warning? |
Change pushed. Perhaps worth checking in the GC, but I'd hate to give up any speed. |
Where did you push it? Can you open a pull request? |
I suppose this isn't unexpected, but here is a MWE of a case where two types of window arrays are created and the program hangs if line 40 (MPI.free(win[1]) is commented out. It also doesn't hang if an MPI.free(win[1]) is placed before the MPI.free(win_owner_match[i]) loop. The docs are clear that there is no guarantee that MPI.Finalize() will close windows, so that's fine. But it would be interesting if someone had better debugging tools like TotalView to make sure this isn't more serious than it looks.
The text was updated successfully, but these errors were encountered: