[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] "if defined" fails for VARS from DAG



Hello Marco,

This behavior is due to dagman always appending VARS variables to jobs at submission time. I have actually just recently implemented the ability for dagman to prepend variables to so they can be used in dag job conditionals like the one you shared. 

A quick look into this feature is that users can add the keyword 'PREPEND' or 'APPEND' to the VARS line in a dag file to choose when the variables are added to the job during submission. 

I am not sure when this feature is set to release, but it is on its way.

Cheers,
Cole Bollig

From: HTCondor-users <htcondor-users-bounces@xxxxxxxxxxx> on behalf of Marco van Zwetselaar <zwets@xxxxxxxxxx>
Sent: Tuesday, May 31, 2022 1:54 PM
To: htcondor-users@xxxxxxxxxxx <htcondor-users@xxxxxxxxxxx>
Subject: [HTCondor-users] "if defined" fails for VARS from DAG
 
It seems as though VARS defined in a DAG get carried over into the node's job file, but don't make 'if defined' true. Here is a test case:

    test.job:
    executable = /usr/bin/echo
    if defined A
       arguments = "defined A=$(A)"
    else
       arguments = "undefined A=$(A)"
    endif
    output = test.out

    test.dag:
    VARS test A="42"
    JOB test test.job

Now, 'condor_submit A=99 test.job' correctly results in 'defined A=99', whereas 'condor_submit_dag test.dag' results in 'undefined A=42'. This is unexpected: A is undefined, yet appears to have value 42.

Kind regards,
Marco

--
KCRI
Marco van Zwetselaar
Bioinformatician
Kilimanjaro Clinical Research Institute
P.O. Box 2236 | Moshi, Kilimanjaro | Tanzania