flux-framework / flux-pmix

flux shell plugin to bootstrap openmpi v5+
GNU Lesser General Public License v3.0
2 stars 4 forks source link

parse fence upcall parameters #11

Closed garlick closed 2 years ago

garlick commented 2 years ago

Problem: theprocs[] and info[] arguments to the fence upcall are currently ignored.

procs is apparently for specifying a subset of ranks to synchronize over, which we don't support. If PMIx_Fence() is called with this set to NULL, then we get one procs entry containing a wildcard rank. Accept this, and fail all others.

Note: in writing tests, I noticed that specifying a subset of ranks seems to hang in openpmix and we never get our upcall. I'm not sure why this is. However I was able to cover this code path in the server by specifying a full set of ranks rather than the wildcard, something which is probably never done.

info is how options are passed to the upcall. The primary logic that needs to be implemented is to fail the fence call if the user marks any unhandled attributes as required. Add code for this.

Note: in writing tests, I noticed that this flag never reaches our upcall. It seems to be cleared in openpmix. Furthermore, when openpmix is entirely handling the fence (no upcall), it tolerates unknown, required options, contrary to the spec, at least by my read.

So that was unsatisfying, and possibly I am misunderstanding something. However, I still would like this to go in for now - we can fix it later if it causes a problem.

garlick commented 2 years ago

Thanks!