Hi,

Am 10.04.2014 um 12:41 schrieb Arnau Bria:

> 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".

So there is no server-side JSV in the game?


> 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.

The server-side JSV will stay alive. Do you observer this for the client side 
JSV too?


> 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 ....

It's meant, that your Perl script has to return and doesn't do any further 
processing.

-- Reuti


> 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


_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users

Reply via email to