Rfio access to files on dpm

Hi,

I would like to ask a quesiton on a RFIO access to files sitting in a DPM Grid Storage Element. I am accessing them from within a given node on the particular grid site. Using ROOT 5.28.00.
I managed to do the access doing the following steps, but I am not sure if this is the ‘canonical’ way of
doing it or there is something more to it in terms of libRFIO and CASTOR libshift and DPM libdpm libraries.

voms-proxy-init -voms cms
<password>
export DPNS_HOST=grid143.kfki.hu
export DPM_HOST=grid143.kfki.hu

Now comes the ‘trick’ that makes it work. I create links to the libdpm.so libraries that are called libshift.so.X:

ln -s /usr/lib64/libdpm.so.1 ./libshift.so
ln -s /usr/lib64/libdpm.so.1 ./libshift.so.2.1
export LD_LIBRARY_PATH=$PWD:$LD_LIBARY_PATH

And then it works:

root [0] TFile * f = TFile::Open("rfio:///dpm/kfki.hu/home/cms/phedex/store/user/radbal/theta_newfill_v1815_comp.root");
root [1] 

So, is this procedure of creating links named ‘libshift.so’ and ‘libshift.so.2.1’ pointing at ‘libdpm.so.1’ is the way to do it? Or there is some other ‘recommended’ way to do it and this solution just “happens” to work?

Thanks in advance,
Balint

The precompiled ROOT version you use was linked with libshift. If you would recompile on your system it would probably detect libdpm for RFIO access and use that one. Both libshift and libdpm contain the rfio routines and hence your symlinking works.

Cheers, Fons.

Hi Fons,

one more question. I have successfully accessed the files on the Storage Element with rfio. It also works with PROOF-lite mode. However, one trying to do the same from within a full PROOF session I cannot access them, PROOF gets hanging after this output (having two cores in the CPU on the Master node, no Slave nodes used at this point):

Looking up for exact location of files: OK (1 files)
Looking up for exact location of files: OK (1 files)

I suspect that the environment variables that I have to set for the rfio access on the SE got overwritten in some kind of a “sub-shell” within PROOF. To set up the environment I have to do the following, being within the grid site:

kinit radbal@CERN.CH
aklog CERN.CH
kinit radics@KFKI.HU
aklog KFKI.HU
source /afs/cern.ch/cms/LCG/LCG-2/UI/cms_ui_env.sh
voms-proxy-init -voms cms
export DPNS_HOST=grid143.kfki.hu
export DPM_HOST=grid143.kfki.hu

And after this every access works using rfio (Cint, PROOF-lite) except the PROOF one. Since I am now working on the single Master node it cannot be that the problem occurs because the same environment variables needed for rfio access are not propagated to the Slave nodes.

Any ideas why is this the case?

Thanks for any help,
Balint

PS: is there a general way in PROOF to propagate some setup shell scripts to the Slave nodes exactly for reasons of special access to files?

Hi,

Yes, but it will work (possibly after some massage) only if you do need to enter info on the keyboard (like passwords or alike …). Your calls to kinit and voms-proxy-init look worrisome in this respect … Anyhow, you can have a look at root.cern.ch/drupal/content/cont … of-session to start with.

Note that kerberos tokens or voms proxies are transferred automatically to workers when authenticating with kerberos or gsi, respectively. However, the case where both are needed concurrently was not foreseen. At least so far.

G. Ganis