Hi all,

I'm working with GT 5.0.1 and LSF.

While I was doing some tests, I've found an weird error messagge from a
simple job:

%  globusrun -s -o -r balam-ln2.supercomputo.unam.mx/jobmanager-lsf  
'&(executable=/bin/chmod)(arguments="+x" $(HOME)/.nimrod/agentcopytest)'

.....

/bin/chmod: cannot access `+x': No such file or directory

============

later, I could reproduce the error. It appears when two almost immediate
consecutive jobs are launched. For instance, I launched two identical
jobs. The first produced these statements in the LSF submit file:

#Change to directory requested by user
cd /hptc_cluster/home/jlgr
/bin/chmod "+x" "/hptc_cluster/home/jlgr/.nimrod/agentcopytest"

but the second one produced these:

#Change to directory requested by user
cd /hptc_cluster/home/jlgr
/bin/chmod "+x" "/hptc_cluster/home/jlgr/.nimrod/agentcopytest" "+x" 
"/hptc_cluster/home/jlgr/.nimrod/agentcopytest"


so, it seems like the arguments were translated from one job to the other.

Looking over the perl LSF adapter, I found this piece of code:

  @arguments = $description->arguments();

    foreach(@arguments)
    {
        if(ref($_))
        {
            return Globus::GRAM::Error::RSL_ARGUMENTS;
        }
    }
    if($#arguments > 0)
    {
        foreach(@arguments)
        {
             $_ =~ s/\\/\\\\/g;
             $_ =~ s/\$/\\\$/g;
             $_ =~ s/"/\\\"/g;
             $_ =~ s/`/\\\`/g;

             $args .= '"' . $_ . '" ';
        }
    }
    else
    {
        $args = "";
    }



However, scope of $args is not defined into this module:

sub submit
{
    my $self = shift;
    my $description = $self->{JobDescription};
    my $status;
    my $lsf_job_script_name;
    my $lsf_job_err_name;
    my $queue;
    my $job_id;
    my @arguments;
    my $email_when = '';

    $self->log('Entering lsf submit');

    # Reject jobs that want streaming, if so configured
.....

I added an scope statement for $args:

sub submit
{
    my $self = shift;
    my $description = $self->{JobDescription};
    my $status;
    my $lsf_job_script_name;
    my $lsf_job_err_name;
    my $queue;
    my $job_id;
    my @arguments;
# probando depuracion de argumentos
    my $args;
# end probando

and jobs are now working fine.

Do you think this can be a definite solution?


best regards

Jose Luis Gordillo
Supercomputo - UNAM


Reply via email to