Hello there!

    There is another problem we've found in SLURM 2.2.3. How to reproduce
it:
1. Have some script on nodes on non-default path, for example:
 /usr/lib64/openmpi/1.3.4/bin/mpicc
2. Set PATH environment to include this path:
 export PATH=/usr/lib64/openmpi/1.3.4/bin:$PATH
3. Try to run the script:
 srun mpicc
So far we get error:
 slurmd[node1-006-01]: execve(): mpicc: No such file or directory
If we run
 srun env mpicc
then it works well because /usr/bin/env prepares path from environment
but slurmstepd itself doesn't. There is a workaround on it in slurmstepd
already but it doesn't work. Patch to fix that attached.

    Andrej.
diff -udpr slurm-2.2.3.new/src/slurmd/slurmstepd/task.c slurm-2.2.3.new2/src/slurmd/slurmstepd/task.c
--- slurm-2.2.3.new/src/slurmd/slurmstepd/task.c	2010-11-24 00:05:15.000000000 +0200
+++ slurm-2.2.3.new2/src/slurmd/slurmstepd/task.c	2011-03-21 13:07:55.000000000 +0200
@@ -396,7 +396,7 @@ exec_task(slurmd_job_t *job, int i, int
 	job->envtp->env = NULL;
 	xfree(job->envtp->task_count);
 
-	if (job->multi_prog && task->argv[0]) {
+	if (task->argv[0] && *task->argv[0] != '/') {
 		/*
 		 * Normally the client (srun) expands the command name
 		 * to a fully qualified path, but in --multi-prog mode it

Reply via email to