Mark Grondona
Mark Grondona
That's a good diea too, though we'd still need a different callback prototype: ```c typedef void (*flux_subprocess_output_f) (flux_subprocess_t *p, const char *stream); ``` The original subprocess API was modeled after...
There was some work by @SteVwonder a few years ago in the job shell jobspec parser to support non-V1, e.g. #3160, and #3175. However, the job shell now explicitly checks...
Looking at code, this assertion failure can trigger if the subprocess server terminates the streaming subprocess response before the subprocess itself has been marked as EXITED. Since it appears from...
Unfortunately it isn't as simple as the above. If there's an error in fork/spawn on the remote side then that error is propagated back in a response to `rexec.exec` which...
Also, crashing here is probably not the best solution. Perhaps we could turn the assertion into a warning and do proper cleanup to avoid the crash but log an error....
@chu11, if you want to take point on the fix, would it be possible to demote this assertion to a warning error by today? If we can get that patch...
> the subprocess server in play here is the one in the sdexec module (indicated as the service in the struct dump), not the one in libsubprocess Ah, yes. Good...
`flux_jobtap_jobspec_update_pack()` has to stage jobspec updates so that they can be applied after the current jobtap callback returns. This is required so that the jobspec doesn't change out from under...
> Could something like this be possible? Yes, dependencies now are mostly implemented as [jobtap plugins](https://flux-framework.readthedocs.io/projects/flux-core/en/latest/man7/flux-jobtap-plugins.html) that register a callback of the form `job.dependency.`. So you coudl write a `dependency-name`...