diff --git a/src/common/env.c b/src/common/env.c index e4041efe9de6f2ffde964a1bf74a1087966ac622..d68f533d2e7c0e13643267229c8d13f435563405 100644 --- a/src/common/env.c +++ b/src/common/env.c @@ -275,13 +275,21 @@ int setup_env(env_t *env) if(env->select_jobinfo) { select_g_get_jobinfo(env->select_jobinfo, SELECT_DATA_PART_ID, &bgl_part_id); - if (bgl_part_id - && setenvf(&env->env, - "MPIRUN_PARTITION", "%s", bgl_part_id)) { + if (bgl_part_id) { + if(setenvf(&env->env, + "MPIRUN_PARTITION", "%s", bgl_part_id)) + rc = SLURM_FAILURE; + + if(setenvf(&env->env, "MPIRUN_NOFREE", "%d", 1)) + rc = SLURM_FAILURE; + if(setenvf(&env->env, "MPIRUN_NOALLOCATE", "%d", 1)) + rc = SLURM_FAILURE; + } else + rc = SLURM_FAILURE; + + if(rc == SLURM_FAILURE) error("Can't set MPIRUN_PARTITION " "environment variable"); - rc = SLURM_FAILURE; - } xfree(bgl_part_id); }