HTCondor Project List Archives



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

Re: [Condor-devel] Is Redefining OpSys a Good Idea?



Greetings!  On 09/13/2011 10:47 AM, Nick LeRoy wrote:
On Tuesday, September 13, 2011 12:36:58 PM Douglas Thain wrote:
Howdy -

I am about ready to throw in the towel on Linux compatibility.

Programs compiled on RHEL5 don't run on RHEL6, and going
between Red Hat and Debian is a joke.  Our users get upset
every year during the upgrade cycle when nobody knows whether
their jobs will run correctly.

We are already defining a custom attribute redhat_version which
is pulled from /etc/redhat-release via the startd cron, but everyone
forgets to do this and gets burned eventually.  I also don't see an obvious
way to programmatically get redhat_version into SUBMIT_EXPRS so
it matches automatically but also allows the smart user to remove the
requirement.

In principle, I can just redefine OpSys to be "RHEL5" or "DEBIAN" instead
of "LINUX" in STARTD_EXPRS and SUBMIT_EXPRS, to make
it abundantly clear to users that these are completely different systems.

However, is this a good idea?

Is OpSys hard coded anywhere that would prevent this from working?

Does anyone have a better solution to dealing with the Linux mess?

See https://condor-wiki.cs.wisc.edu/index.cgi/tktview?tn=2366,21 .

-Nick


Ouch. Might I recommend going the LSB route instead of the distro route? We prepped for some of that with the attached startd cron script. What remains nasty is the requirements expression around the LSB version - but advertising and requiring ABI compatibility is the goal of this discussion, I believe.

-- Lans
#!/bin/sh
# $Id: DWA_LSB,v 1.1 2010/10/20 05:19:17 condor Exp $
# $Source: /studio/common/condor/templates/startd-bin/RCS/DWA_LSB,v $
# Advertise lsb_release information so jobs can match things like
# having LSB graphics API's or a particular release of RHEL
# Initially only DWA_LSB_Release will be used by the buildfarm
VERSION=`/usr/bin/lsb_release -v -s`
ID=`/usr/bin/lsb_release -i -s`
RELEASE=`/usr/bin/lsb_release -r -s`
echo "DWA_LSB_Version=\"$VERSION\""
echo "DWA_LSB_Id=\"$ID\""
echo "DWA_LSB_Release=$RELEASE"
exit 0