Hello, I am having a problem with a client side jsv submit script setting a boolen complex to 0. I've kind of worked around it until now...
#grid version 6.2u5 # complex line spice spice BOOL == FORCED NO 0 0 # jsv script is called from global sge_request. # grid submit line qrsh -now no -l spice #without memory rule (commented out so nothing in the jsv is exercised) hard resource_list: spice=TRUE #with memory rule hard resource_list: mem_total=128G,spice=0.000000 # output of jsv debug log (logging_enabled) - this is the same with either way. >>> START <<< SEND ENV <<< STARTED >>> PARAM VERSION 1.0 >>> PARAM CONTEXT client >>> PARAM CLIENT qrsh >>> PARAM USER coffman >>> PARAM GROUP games >>> PARAM CMDNAME NONE >>> PARAM CMDARGS 0 >>> PARAM e /dev/null >>> PARAM l_hard spice=0.000000 >>> PARAM M [email protected] >>> PARAM N QRLOGIN >>> PARAM o /dev/null >>> PARAM display localhost:11.0 >>> ENV ADD DISPLAY localhost:11.0 >>> ENV ADD QRSH_PORT gtmaster.ftc.avagotech.net:44360 >>> BEGIN <<< PARAM l_hard mem_total=128G,spice=0.000000 <<< RESULT STATE CORRECT Job was modified before it was accepted >>> QUIT Any clues as to how best to fix this? It seems to be something in the JSV.pm file that maps the r_value to 0 if none is given. It only seems to happen when the jsv_sub_add_param is called. Here is a jsv script that I see this issue with... ---------------------------------------------- #!/usr/bin/perl use strict; use warnings; no warnings qw/uninitialized/; use Env qw(SGE_ROOT); use lib "$SGE_ROOT/util/resources/jsv"; use JSV qw( :DEFAULT jsv_send_env jsv_log_info ); jsv_on_start(sub { jsv_send_env(); }); jsv_on_verify(sub { my %params = jsv_get_param_hash(); my $do_correct = 0; my $do_wait = 0; if ((exists $params{l_hard}{memory}) or (exists $params{l_hard}{mem})) { my $memory = 0; # set local memory value the l_hard memory value is one that I created and the short # cut is mem.. if (exists $params{l_hard}{memory}) { $memory = $params{l_hard}{memory} } elsif (exists $params{l_hard}{mem}) { $memory = $params{l_hard}{mem} } if (!exists $params{l_hard}{mem_total}) { # check values and set memory ceilings if ($memory < 128 ) { $do_correct = 1; jsv_sub_add_param('l_hard','mem_total', '260G'); } elsif ($memory < 387 ) { $do_correct = 1; jsv_sub_add_param('l_hard','mem_total', '400G'); } } } else { $do_correct = 1; jsv_sub_add_param('l_hard','mem_total', '128G'); } if ($do_wait) { jsv_reject_wait('Job is rejected. It might be submitted later.'); } elsif ($do_correct) { jsv_correct('Job was modified before it was accepted'); } else { jsv_accept('Job is accepted'); } }); jsv_main(); ---------------------------------------------- Any help is greatly appreciated. Hopefully I don't have to check every boolean value and if the r_value is 0, remap to true. I guess that wouldn't be the worst thing... Thanks. -- -MichaelC _______________________________________________ users mailing list [email protected] https://gridengine.org/mailman/listinfo/users
