Print

Print


Folks,

I have to OSS enhancement requests.  They allowed me to successfully 
stage in data for the first time.

1. The mps_Stage script (and probably all the other mps_ scripts) needs 
to be passed the -c configFile
option to make it work for those of us who don't install xrootd in 
/opt/xrootd.

This turns out to be easy for mps_Stage and is probably easy for the 
other scripts.
In the file XrdOssStage.cc, the method int XrdOssSys::GetFile needs the 
following changes:

    a) char * arglist[4];   becomes
       char * arglist[6];
    b) at about line 328, change the assignments to arglist to be
       arglist[0] = StageCmd;
       arglist[1] = (char *) "-c";
       arglist[2] = ConfigFN;
       arglist[3] = rfs_fn;
       arglist[4] = lfs_fn;
       arglist[5] = (char *)0;

2. There is a "bug" of sorts in mps_Stage in Init_Config
      somewhere near line 817 is the code
      while( <CONFIG> ) {
         s/#.*$//;       #remove comments
         ($var, $val) = split(" ",$_,2);
         ($x, $val) = split(" ", $val,2) if $val =~ /^= /;   # remove =

It turns out that the splits only work if you have a space between the 
variable name and the =
and likewise after the =.  I have only tabs after the = and it didn't 
work. There are two solutions to this.  The clearest is to change the " 
" argument to the splits to be "\s". The perl manual indicates that you 
can also change it to ' ' and split will interpret it as \s, but I 
haven't tested this.  No doubt this change will be needed in other mps_ 
scripts that read the config file. (One could put this code into a .pm 
file to share it amongst all the mps_ scripts, of course...)

--
Gregory J. Sharp                   email: [log in to unmask]
Wilson Synchrotron Laboratory      url: 
http://www.lepp.cornell.edu/~gregor
Dryden Rd                          ph:  +1 607 255 4882
Ithaca, NY 14853                   fax: +1 607 255 8062