Hello all,
some user is running a new application that uses drmaa for sending jobs
to our SGE cluster (2011.11p1-2).
We have a client side jsv perl script that rejects all jobs that try to
specify the binding strategy (as we already do it in the jsv itself).
(First solution would be modify the jsv so it does not reject
the job as we already set all binding values, but I want to understand
what is happening). There's only one jsv script, and I'm sending the
job with "-jsv jsv_script".
When we run this application, it tries to submit several jobs, but it
fails because in some point the binding strategy is set and the jsv
script rejects the job.
>From my test, the binding strategy is set by the jsv itself. So call 1
has no binding strategy, call 2 inherits the binding from call 1, and
so on ....
the basic structure of my jsv is:
---------------------------
jsv_on_start(sub {
jsv_send_env();
});
jsv_on_verify(sub {
%params = jsv_get_param_hash();
[...]
here I do all the modifications, if any $do_correct=1;
[...]
if ($do_correct) {
jsv_correct('corrected');
}else{
jsv_accept('accepted');
}
}
jsv_main();
---------------------------
and a submission looks like:
DEBUG: jsv_on_verify start
DEBUG: params hash loaded:
DEBUG: binding value from params hash:
DEBUG: setting binding case 1
DEBUG: the job has been corrected. calling jsv_correct
queued 8778860: emt0.0.0.traindir.e81295f2c09a11e3a369002264a1a0ac
(virtual_free=2048M h_vmem=2048M h_stack=10M)
DEBUG: jsv_on_verify start
DEBUG: params hash loaded:
DEBUG: binding value from params hash:
DEBUG: setting binding case 1
DEBUG: the job has been corrected. calling jsv_correct
DEBUG: jsv_on_verify start
DEBUG: params hash loaded:
DEBUG: binding value from params hash: linear
DEBUG: job reject because binsing is already set
DEBUG: the job has been accepted. calling jsv_accept
queued 8778884: emt0.0.bundle.traindir.e81295f2c09a11e3a369002264a1a0ac
(virtual_free=2048M h_vmem=2048M h_stack=10M)
[...]
so, in the first block binding value is empty, but in the second block,
there's a call to jsv_correct but the job is not submitted. so the
submission is passed to the same JSV instance, and now the biding param
has a value.
from man page:
This function can only be used in jsv_on_verify(). After it has been called,
the function jsv_on_verify() has to return immediately.
but it's not returning ....
in which circunstances this jsv_correct does not submit a job ?
I've tried to clean the params hash in several ways but it always has
the values, also a call to jsv_clear_params, but that function is no
valid in the perl module:
"jsv_clear_params" is not exported by the JSV module
$ grep jsv_clear_params /usr/share/gridengine/util/resources/jsv/JSV.pm
$
So, anyone could explain what is happening here?
Thanks in advance,
Arnau
_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users