In the message dated: Tue, 18 Dec 2012 11:24:22 +0100,
The pithy ruminations from Reuti on 
<Re: [gridengine users] JSV unexpectedly alters resource request from boolean t
o float> were:
=> Am 17.12.2012 um 09:19 schrieb William Hay:
=> 
=> > On 14 December 2012 22:30, [email protected] <[email protected]> 
wrote:
=> > 
        [SNIP!]

=> > 
=> > The JSV consists of:
=> > 
=> > #############################
=> > #!/bin/sh
=> > # from
=> > #   http://www.mentby.com/Group/grid-engine/default-resource-per-queue.html
=> > 
=> > # JSV to convert PE names to wildcard version, in order to allow users to 
submit jobs
=> > # with:
=> > #   -l pe openmpi
=> > # and have it transparently refer to
=> > #   -l pe openmpi-Intel*
=> > # or
=> > #   -l pe openmpi-AMD*
=> > 
=> > jsv_on_start() {
=> >       return
=> > }
=> > 
=> > jsv_on_verify() {
=> >       pe=$(jsv_get_param pe_name)
=> >       case "$pe" in
=> >           openmpi )
=> >             jsv_set_param pe_name "$pe-*"
=> >             jsv_sub_add_param l_hard openmpi TRUE   # in case it wasn't 
set already
=> >             jsv_correct "Job was modified"
=> >             ;;
=> >       esac
=> >       jsv_accept "Job OK"
=> 
=> You should call either jsv_correct or jsv_accept, but not both (which 
can/will happen in the abo
=> ve case). Please have a look at the example in 
$SGE_ROOT/util/resources/jsv/jsv.sh where it's do

Thanks for the reminder to check the example script.

=> ne by setting some flags.


Hmmm.... I guess I'm mis-reading the jsv_script_interface(3) man
page. Where it says:

   jsv_accept()
       This  function can only be used in jsv_on_verify(). After it
       has been called, the function jsv_on_verify() has to return
       immediately.

[SNIP!]

   jsv_correct()
       This  function can only be used in jsv_on_verify(). After it
       has been called, the function jsv_on_verify() has to return
       immediately.

I interperted it as meaning that there was an implicit "exit" in both
jsv_accept and jsv_correct, meaning that the execution flow inside
jsv_on_verify would end after either of those statements, and it could
not continue after calling jsv_correct into jsv_accept.

It sounds like you're saying I could do something like:

        ######################################################
        jsv_on_verify() {
                pe=$(jsv_get_param pe_name)
                case "$pe" in
                        openmpi )
                                jsv_set_param pe_name "$pe-*"
                                jsv_correct "Job was modified"
                                return
                                ;;
                esac

                jsv_accept "Job OK"
        }
        ######################################################

or 

        ######################################################
        jsvmsg="Job OK"
        jsv_on_verify() {
                pe=$(jsv_get_param pe_name)
                case "$pe" in
                        openmpi )
                                jsv_set_param pe_name "$pe-*"
                                jsvmsg="Job was modified"
                                return
                                ;;
                esac
                
                # call jsv_correct, even if no correction is done,
                # as jsv_accept ignores all modifications
                jsv_correct $jsvmsg
        }
        ######################################################


=> 
=> -- Reuti
=> 

Thanks,

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

Reply via email to