[root@fnpcsrv1 log]# condor_status -long fnpcsrv1
<clip>
Class = "IO"
Start = Class =!= UNDEFINED && Class == "IO"
---------------
In my job classad:
Requirements = ((TARGET.Class =!= UNDEFINED && TARGET.Class == "IO")) &&
(Arch == "INTEL") && (OpSys == "LINUX") && (Disk >= DiskUsage) && ((Memory
* 1024) >= ImageSize) && (TARGET.FileSystemDomain == MY.FileSystemDomain)
Class = "IO"
---------------------
What is happening at the moment is that the job is matching
with another machine in the pool that doesn't have Class=IO,
and failing.
What are we doing wrong here?
The semantics of ClassAds in Condor are imperfect. (We have a new version
with better semantics, but it's not yet in Condor.)
When you say 'TARGET.Class == "IO"' you are not limiting the scope of the
search for Class to the TARGET ClassAd. Instead, you are setting the start
point of the search. That is, it will search TARGET (the Machine ClassAd),
and if it doesn't find it there it will search MY (the job ClassAd). Since
it's in your Job ClassAd, it found it.
This is clearly not ideal, but at this point it's hard to change: how many
Condor configurations would we break?
In your case, you could define JobClass for the job ClassAd, and
SupportedClass in the machine ClassAd, or something like that. Then you
have unique names that won't conflict in this way.
Sorry for this confusion!
-alain
_______________________________________________
Condor-users mailing list
Condor-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/condor-users