Skip to content
Snippets Groups Projects
Commit cbc3b63c authored by René Pascal Becker's avatar René Pascal Becker
Browse files

Bugfix vrm job id not used

parent 28a46d20
No related branches found
No related tags found
No related merge requests found
...@@ -867,7 +867,8 @@ void _populate_srun_argv(const pmix_app_t *app, int app_argc, char **argv, ...@@ -867,7 +867,8 @@ void _populate_srun_argv(const pmix_app_t *app, int app_argc, char **argv,
} }
int _validate_launch(const pmix_proc_t *proc, const pmix_app_t apps[], int _validate_launch(const pmix_proc_t *proc, const pmix_app_t apps[],
size_t napps, size_t **_out_ids, size_t *_out_nids) { size_t napps, size_t **_out_ids, size_t *_out_nids,
char **_out_vrm_id) {
// Make sure we do not launch "nothing" // Make sure we do not launch "nothing"
if (!napps) if (!napps)
return 0; return 0;
...@@ -929,6 +930,11 @@ int _validate_launch(const pmix_proc_t *proc, const pmix_app_t apps[], ...@@ -929,6 +930,11 @@ int _validate_launch(const pmix_proc_t *proc, const pmix_app_t apps[],
return 0; return 0;
} }
// Fetch vrm job id
char *vrm_id = strtok(NULL, ",");
*_out_vrm_id = (char *)malloc(strlen(vrm_id) + 1);
strcpy(*_out_vrm_id, vrm_id);
// Ignore nonce // Ignore nonce
strtok(NULL, ","); strtok(NULL, ",");
...@@ -947,7 +953,7 @@ int _validate_launch(const pmix_proc_t *proc, const pmix_app_t apps[], ...@@ -947,7 +953,7 @@ int _validate_launch(const pmix_proc_t *proc, const pmix_app_t apps[],
} }
void _launch_app(const pmix_proc_t *parent, const pmix_app_t *app, void _launch_app(const pmix_proc_t *parent, const pmix_app_t *app,
size_t dynamicId) { size_t dynamicId, char *vrm_job_id) {
int app_argc; int app_argc;
char **argv = _create_srun_argv(app, &app_argc); char **argv = _create_srun_argv(app, &app_argc);
_populate_srun_argv(app, app_argc, argv, dynamicId); _populate_srun_argv(app, app_argc, argv, dynamicId);
...@@ -972,7 +978,7 @@ void _launch_app(const pmix_proc_t *parent, const pmix_app_t *app, ...@@ -972,7 +978,7 @@ void _launch_app(const pmix_proc_t *parent, const pmix_app_t *app,
char **env = env_array_copy(app->env); char **env = env_array_copy(app->env);
env_array_append_fmt(&env, "HOME", "/root"); env_array_append_fmt(&env, "HOME", "/root");
env_array_append_fmt(&env, "DPM_AGENT_PORT", "25000"); env_array_append_fmt(&env, "DPM_AGENT_PORT", "25000");
env_array_append_fmt(&env, "SLURM_VRM_JOBID", "%u", pmixp_info_jobid()); env_array_append_fmt(&env, "SLURM_VRM_JOBID", "%s", vrm_job_id);
env_array_append_fmt(&env, "DPM_PMIX_DYNAMIC_ID", "%zu", dynamicId); env_array_append_fmt(&env, "DPM_PMIX_DYNAMIC_ID", "%zu", dynamicId);
execve(SLURM_PREFIX "/bin/srun", argv, env); execve(SLURM_PREFIX "/bin/srun", argv, env);
abort(); abort();
...@@ -982,8 +988,10 @@ int pmixp_spawn(const pmix_proc_t *proc, const pmix_app_t apps[], size_t napps, ...@@ -982,8 +988,10 @@ int pmixp_spawn(const pmix_proc_t *proc, const pmix_app_t apps[], size_t napps,
pmix_spawn_cbfunc_t cbfunc, void *cbdata) { pmix_spawn_cbfunc_t cbfunc, void *cbdata) {
// First ask for permission // First ask for permission
size_t *dynamicIds; size_t *dynamicIds;
char *vrm_job_id = NULL;
size_t nDynamicIds; size_t nDynamicIds;
if (!_validate_launch(proc, apps, napps, &dynamicIds, &nDynamicIds)) if (!_validate_launch(proc, apps, napps, &dynamicIds, &nDynamicIds,
&vrm_job_id))
return 0; return 0;
size_t currentApp = 0; size_t currentApp = 0;
...@@ -1008,11 +1016,12 @@ int pmixp_spawn(const pmix_proc_t *proc, const pmix_app_t apps[], size_t napps, ...@@ -1008,11 +1016,12 @@ int pmixp_spawn(const pmix_proc_t *proc, const pmix_app_t apps[], size_t napps,
__pid_t pid = fork(); __pid_t pid = fork();
if (pid == 0) { if (pid == 0) {
_launch_app(proc, app, dynamicIds[currentApp]); _launch_app(proc, app, dynamicIds[currentApp], vrm_job_id);
} }
currentApp++; currentApp++;
} }
free(dynamicIds); free(dynamicIds);
free(vrm_job_id);
fclose(ptr); fclose(ptr);
return 1; return 1;
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment