If your job is running a bash or shell script (includes the header
#!/bin/bash), and it goes on hold, you might be experiencing
a Windows/Linux incompability error.
Files written in Windows (based on the DOS operating system) and
files written in Mac/Linux (based on the UNIX operating system) use
different invisible characters to mean "end of a line" in a file.
Normally this isn't a problem, except when writing bash scripts;
bash will not be able to run scripts if they have the Windows/DOS
To find why the job went on hold, look for the hold reason,
either by running
[alice@submit]$ condor_q -af HoldReason
or by looking in the log file.
If a Windows/Linux incompatibility is the problem, the hold
reason will look something like this:
Error from firstname.lastname@example.org: Failed to execute
arguments 2: (errno=2: 'No such file or directory')
To check if this is the problem, you can open the script in
the vi text editor, using its "binary" mode:
[alice@submit]$ vi -b hello-chtc.sh
hello-chtc.sh with the name of your script.)
If you see
^M characters at the end of each line, those
are the DOS line endings and that's the problem.
:q to quit vi)
Luckily, there is an easy fix! To convert the script to
unix line endings so that it will run correctly, you can run:
[alice@submit]$ dos2unix hello-chtc.sh
on the submit node and it will change the format for you. If you
release your held jobs (using
re-submit the jobs, you should no longer get the same error.