<div dir="ltr"><div dir="ltr">Hi all,<br><div><br></div><div><div>My expectation is that the epilog script gets run no matter what happens to the job (fails, canceled, timeout, etc). Is that true, or are there corner cases?  I hope I correctly understand the intended behavior.</div><div><br></div><div>My OS is Ubuntu 18.04.2 LTS and my SLURM is 18.08.7 built from source.</div><div><br></div><div>The end goal is to get the user to clean up their own temp files in their own epilog script to make the job more portable between clusters.  So in their case, the epilog has some "rm -rf" in it which can be slow.</div><div><br></div><div>Here is my simple user epilog script:</div><div><br></div><div><br></div><div>$ cat example-user-epilog.sh </div><div>#!/bin/bash</div><div><br></div><div># table is <a href="https://slurm.schedmd.com/prolog_epilog.html">https://slurm.schedmd.com/prolog_epilog.html</a></div><div>echo "inside my own epilog"</div><div>printenv | grep SLURM</div><div><br></div><div><br></div><div>Here is my simple user job script:</div><div><br></div><div><br></div><div>$ cat example-user-sbatch.sh </div><div>#!/bin/bash</div><div><br></div><div>echo "starting my job"</div><div><br></div><div>#first and only task inside my job</div><div>srun --epilog=/home/alex/example-user-epilog.sh sleep 600</div><div><br></div><div><br></div><div>What would be the cases where this epilog script would not run?</div><div><br></div><div>I tried just running the job so it completes normally; I tried running it with a short timelimit so it gets canceled by timeout, I tried scancel to cancel the job, and I also tried just killing my sleep command on the node so the job fails.  So that's four distinct cases.  It seemed to work OK, as evidenced by getting the list of SLURM env vars in my output file.</div><div><br></div><div><br></div><div>However, if I now amend the epilog script to include a sleep command, it seems to get killed half-way through.</div><div><br></div><div><br></div><div>$ cat example-user-epilog.sh </div><div>#!/bin/bash</div><div><br></div><div># table is <a href="https://slurm.schedmd.com/prolog_epilog.html">https://slurm.schedmd.com/prolog_epilog.html</a></div><div>echo "inside my own epilog"</div><div>sleep 10</div><div>printenv | grep SLURM</div><div><br></div><div><br></div><div>I thought maybe there was some epilog timeout but specifically the PrologEpilogTimeout is set to the default in my case.</div><div><br></div><div>$ scontrol show config | grep -i time<br></div><div>BatchStartTimeout       = 10 sec</div><div>BOOT_TIME               = 2019-04-25T09:03:20</div><div>EioTimeout              = 60</div><div>EpilogMsgTime           = 2000 usec</div><div>GetEnvTimeout           = 2 sec</div><div>GroupUpdateTime         = 600 sec</div><div>KeepAliveTime           = SYSTEM_DEFAULT</div><div>LogTimeFormat           = iso8601_ms</div><div>MessageTimeout          = 10 sec</div><div>OverTimeLimit           = 0 min</div><div>PrologEpilogTimeout     = 65534</div><div>ResumeTimeout           = 60 sec</div><div>SchedulerTimeSlice      = 30 sec</div><div>SlurmctldTimeout        = 300 sec</div><div>SlurmdTimeout           = 300 sec</div><div>SuspendTime             = NONE</div><div>SuspendTimeout          = 30 sec</div><div>TCPTimeout              = 2 sec</div><div>UnkillableStepTimeout   = 60 sec</div><div>WaitTime                = 0 sec</div><div><br></div><div><br></div><div>Looking through the slurmd logs on the compute nodes, I sometimes see a message like </div><div>[2019-04-25T05:54:52.241] epilog for job 17280 ran for 12 seconds</div><div>so I'm guessing that gets reported for epilogs which run "long".</div><div><br></div><div><br></div><div>But in this case they seem to get killed or not run at all.</div><div><br></div><div>How can I troubleshoot further?</div><div><br></div><div>In case this is some kind of cgroups thing, I do have </div><div>Delegate=yes</div><div>in my slurmd systemd unit file.</div></div><div><br></div><div>Regards,</div><div>Alex</div></div></div>