Skip to content

[multiple-commpaths] Allows colon-separated commpath list - #196

Open
rountree wants to merge 10 commits into
llnl:develfrom
rountree:multiple-commpaths
Open

[multiple-commpaths] Allows colon-separated commpath list#196
rountree wants to merge 10 commits into
llnl:develfrom
rountree:multiple-commpaths

Conversation

@rountree

@rountree rountree commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Per-server selection, first path in --commpaths that works for that server gets picked. No consensus process, as the commpath is not visible outside of the server and its particular clients.

@rountree
rountree requested a review from mplegendre July 6, 2026 02:45
@rountree
rountree force-pushed the multiple-commpaths branch 2 times, most recently from 2d223fe to 8c7c63f Compare July 10, 2026 06:37
mplegendre and others added 2 commits July 10, 2026 09:53
Replaces --commpath with --commpaths.
Takes a colon-separated list of commpaths.
The choice of which of those to use is made per-server.
The first workable path is selected.  The paths may differ
from server to server:  unlike --cachepaths, there is no
consensus process.
@mplegendre

Copy link
Copy Markdown
Member

@rountree - Are you working on fixing the CI failures?

@rountree
rountree force-pushed the multiple-commpaths branch from 07e1a40 to 1072473 Compare August 1, 2026 02:41
@rountree

rountree commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

@mplegendre Yes. What's queued up for this coming Friday is:

  1. A PR adding workflows for granular resource manager testing and log recovery via artifacts.
  2. A FAQ on how to launch GitHub workflows, monitor progress, and download artifacts all via the command line.
  3. A PR with most of the low-hanging-fruit configure file changes.
  4. A patched multiple-commpaths PR that passes repeated invocations of the existing ci.yml workflow.

See ci-artifacts branch/PR for description.

The workflows need be added here as the files are
required to be both in the default branch as well
as the branch using the workflows.
@rountree
rountree force-pushed the multiple-commpaths branch from 44a204f to bd856fa Compare August 5, 2026 17:49
@rountree

rountree commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator Author

Debugging notes:

Running bd856fa (tip of multiple-commpaths at the moment)
3/13 ci.yml failures
a) Flux, Running: ./run_driver --dependency --push, Error: The operation was canceled. 17m 27s, 31038941417
b) slurm-rshlaunch, SOME TESTS FAILED (no failures logged), 2m 9s, 31038944077
c) slurm-srun, SOME TESTS FAILED (no failures logged), 1m 18s, 31038929449

Running c0170276 (tip of devel)
3/31 ci.yml
a) Flux, Running: ./run_driver --dependency --push, Error: The operation was canceled., 17m 7s, 31043385441
b) ditto
c) ditto

Running bd856fa (multiple-commpaths)
0/31 ci-slum-srun-artifacts failures
0/31 ci-slurm-artifacts failures


Running bd856fa (multiple-commpaths)
4/13 ci.yml failures, 3 Flux, 1 Run spindle-slurm-ubuntu testsuite


Running c0445ae (testing-multiple-commpaths)
Run 31106514887 job 92632975191 "Slurm srun, Ubuntu"

At this point GitHub actions became unusably slow.

The good news is that the podman port can replicate the problem on rzadams with a 4% failure rate.

@nchaimov
nchaimov self-requested a review August 7, 2026 17:32
Comment thread .github/workflows/ci-slurm-plugin-artifacts.yml Outdated
Comment thread src/slurm_plugin/plugin_utils.c Outdated
Comment thread src/fe/startup/parse_launcher.cc Outdated
Comment thread configure.common.ac Outdated
Comment thread src/flux/sessionmgr.c Outdated
#if !defined(COMMPATH)
#error COMMPATH must be defined in config.h
#endif
#define SESSIONPATH "/tmp/spindle/session"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'm not sure we should hard-code a path for the session directory

@rountree rountree Aug 20, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This one got complicated quickly. The naive implementation (picking a path from --commpaths) requires the same --commpaths parameter used for the session initialization job be present in every job to be run under that session, and also requires that the state of the candidate paths doesn't change of the course of the session (e.g., if the mount described by the first path in the list was initially down but came back online later, jobs fail).

Possible fix is to have a dedicated --sessionpaths parameter that's evaluated only at session start, and the SESSION_ID returned by the initializing job embeds the path to use. If no --sessionpaths are working, then fall back to commpaths, and eventually $TMPDIR.

Will take this up in a separate PR.

For now, change the hard-coded path to be based on $TMPDIR.

Comment thread src/flux/sessionmgr.c
Comment thread configure.common.ac
Comment thread src/client/client_comlib/client_api.c Outdated
rountree and others added 7 commits August 12, 2026 06:22
For the slurm-plugin case, fix copy/paste error by updating container names to those found in docker-compose.yml.  (h/t Nick)

Co-authored-by: Nicholas Chaimov <nchaimov@gmail.com>
Typo fix.  h/t Nick.

Co-authored-by: Nicholas Chaimov <nchaimov@gmail.com>
h/t Nick.

Co-authored-by: Nicholas Chaimov <nchaimov@gmail.com>
src/client/client_comlib/client_api.c
message.data (via buffer) is allocated 2*(MAX_PATH_LEN+1) bytes on the stack.
message.data now truncated to 2*(MAX_PATH_LEN+1)-1 after the message is populated.

src/fe/startup/parse_launcher.cc
Both getFirstValidPath() and getApplicationArgsFE() were ignoring return values.
Both now immediately return -1 on error, and the enclosing funciton signature
has been converted from void to int.
Handles configure-, build-, and runtime options.
@rountree
rountree deployed to Spindle CI August 20, 2026 22:08 — with GitHub Actions Active
@rountree
rountree deployed to Spindle CI August 20, 2026 22:08 — with GitHub Actions Active
@rountree
rountree deployed to Spindle CI August 20, 2026 22:08 — with GitHub Actions Active
@rountree

Copy link
Copy Markdown
Collaborator Author

@nchaimov Ready for review.

@nchaimov nchaimov left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It looks like this addresses all of my comments from the previous review

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.

4 participants