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

Re: [Condor-users] Bug? submit script Classadds can't start with anumber?

On Thu, 30 Dec 2004 09:03:51 -0600  Nate Mueller wrote:

> Any string values for classads should be in double quotes. 


> In this case Condor is trying to interperate 77planes_v02 as an
> integer and failing.

actually, it's trying to interpret it as an attribute reference.

> Classads will work if the string starts with a non-number, but it's
> best just to quote all strings.

that's not really true.  when condor sees "strings" in a classad that
look like this:

Requirements = START

'START' isn't being treated as a string.  it's the name of another
classad attribute that should be evaluated.  so, it's the rules of
what makes a valid classad attribute name that apply to 'unquoted
strings' like this (again, they're *not* really strings).  classad
attribute names can't start with numbers, can't contain punctuation,
etc, etc.  basically, any part of any classad expression that is not a
float (3.147), int (42), or string ("confusion") literal, and that's
not a boolean or arithmetic operator, is treated as a reference to
another classad attribute. 

you had:

+sceneName = 77planes_v02

in this case, '77planes_v02' is neither an int, float, nor string
literal, so condor is trying to treat it as a reference to another
attribute.  but, that is not a invalid attribute name.  that's why
condor_submit failed.

the solution, however, is exactly what nate said:

+sceneName = "77planes_v02"

and then whenever you refer to sceneName, do it as a string, e.g.:

WANT_VACATE = (sceneName != "77planes_v02")

i just wanted to explain in more detail this nasty little bit of
confusion with classad syntax.  sorry everyone, i know this is
needlessly complicated.  the good news is that we've got a new
implementation of classads where the syntax is much more consistent.
it's on the way... stay tuned.