Hi Soumen,
this sounds complex. One day it works and without any change it ceases working the next day....
To be honest, something must have changed.
The errno 8 is the ENOEXEC errno and the execve(2) man page states
> An executable is not in a recognized format, is for the wrong architecture, or has some other format error that means it cannot be executed.
It looks like your command interpreter is corrupt somehow.
Since it is a script as you say, have a closer look at the executable called in the hashbang.
I mean, if your script starts with
#!/my/very/important/command/interpreter
You'll have to investigate the executable "/my/very/important/command/interpreter"
Look at the size, find out what "file /my/very/important/command/interpreter" says.
If this doesn't give a satisfying theory about what's going wrong, you can try to restart the jobserver that executes the script.
If you set an environment variable called
JOBEXECUTORLOG
to a full qualified path and prefix, like "/tmp/jsdebug-", the jobexecutor writes some information in case something goes wrong.
If that doesn't give enough information, try to save the taskfile.
To do so, you probably need to write a simple wrapper script, because a failing execv() won't give you enough time to copy it manually.
So you do
mv jobexecutor jobexecutor.orig
and you write a script called jobexecutor that does
#!/bin/bash
ln $2 $2.save # hard link here; argv[2] is the taskfilename
exec jobexecutor.orig $*
Please tell what you've found out.
Regards,
Ronald