[ROOT-7703] TNetXNGFileStager::Locate does not give same answer as TXNetFileStager::Locate Created: 07/Oct/15  Updated: 15/May/19  Resolved: 06/Nov/15

Status: Closed
Project: ROOT
Component/s: None
Affects Version/s: 5.34/30
Fix Version/s: 6.06/00, 6.02/14, 5.34/36, 6.04/10

Type: Bug Priority: High
Reporter: Laurent Aphecetche Assignee: David Smith
Resolution: Fixed Votes: 0
Labels: None
Environment:

SLC6.4 machine.
2.6.32-431.20.3.el6.x86_64
Using an alice root build from cvmfs :
/cvmfs/alice.cern.ch/x86_64-2.6-gnu-4.1.2/Packages/ROOT/v5-34-30-alice3-5/bin/root


Development:

 Description   

Hi,

I'm facing an issue with recent root (alice) builds of 5.34.30 that offers TNetXNGFileStager. The Locate(file,url) method returns an invalid url :

TFileStager* fs = new TNetXNGFileStager("root://nansafmaster2.in2p3.fr")
TFileStager* fsold = new TXNetFileStager("root://nansafmaster2.in2p3.fr")
TString u, uold;
fs->Locate("root://nansafmaster2.in2p3.fr//alice/data/2015/LHC15i/000236248/muon_calo_pass1/AOD/004/AliAOD.Muons.root",u)
fsold->Locate("root://nansafmaster2.in2p3.fr//alice/data/2015/LHC15i/000236248/muon_calo_pass1/AOD/004/AliAOD.Muons.root",uold)

root [8] u
(class TString)"[::193.48.101.21]:1094"
root [9] uold
(class TString)"root://nansaf01.in2p3.fr//alice/data/2015/LHC15i/000236248/muon_calo_pass1/AOD/004/AliAOD.Muons.root"



 Comments   
Comment by David Smith [ 29/Oct/15 ]

Hello Laurent ,

I'm sorry for my delay in replying to your ticket. I am checking why there is a difference and which portions of the software are involved (the request that is happening also involves different xrootd clients as well as the two different ROOT plugins). I'll update here as soon as there is more news for you.

Yours,
David

Comment by Laurent Aphecetche [ 29/Oct/15 ]

OK. Thanks for the update. I'll wait

Comment by David Smith [ 04/Nov/15 ]

Hi,

The difference is indeed because of a change between the two plugins. I've made a fix to TNetXNGFileStager restore the way it worked in TXNetFileStager.

If you like you could try the change yourself, using your xrootd server and file to check that it definitely covers your case. The change is currently on "master", so you could build that, or wait until one of our regular "nightly" builds is available for slc6, to try via afs. Are you interested in that - I could point you to the nightly build when it's available. (It will be a ROOT 6 version)? Anyway I will add the fix for subsequent inclusion in future patch releases of the 5.34 & 6, but will wait a short while in case you would like to add something.

David

Comment by Laurent Aphecetche [ 04/Nov/15 ]

Hi David,

Thanks. Actually, I feel stupid, but I've tried to compile the master of Root 6 on my Mac (El Capitan) to test and I get :

root [0] TFileStager* fs = new TNetXNGFileStager("root://nansafmaster2.in2p3.fr")
ROOT_prompt_0:1:23: error: unknown type name 'TNetXNGFileStager'

apparently something was not properly configured, and I have no idea what...

Comment by David Smith [ 05/Nov/15 ]

Hi Laurent,

Your ROOT has probably not built the TNetXNG plugin because it didn't find the xrootd components needed at built time; you could use the builtin option (where it gets the xrootd source and builds that during the ROOT build). e.g. if you're using cmake

< in your ROOT build directory>
cmake -Dbuiltin_xrootd=ON /path_to/root-source-tree
make -j <n proc>

Comment by Laurent Aphecetche [ 05/Nov/15 ]

Hi David,

Thanks for the hint. Could compiled Root 6 and I can confirm the problem is fixed, thanks.

root [0] TFileStager* fs = new TNetXNGFileStager("root://nansafmaster2.in2p3.fr")
(TFileStager *) 0x7fbf9868c700
root [1] TFileStager* fsold = new TXNetFileStager("root://nansafmaster2.in2p3.fr")
(TFileStager *) 0x7fbf98762e50
root [2] TString u, uold;
root [3] fs->Locate("root://nansafmaster2.in2p3.fr//alice/data/2015/LHC15i/000236248/muon_calo_pass1/AOD/004/AliAOD.Muons.root",u)
(Int_t) 0
root [4] fsold->Locate("root://nansafmaster2.in2p3.fr//alice/data/2015/LHC15i/000236248/muon_calo_pass1/AOD/004/AliAOD.Muons.root",uold)
(Int_t) 0
root [6] u.Data()
(const char *) "root://nansaf01.in2p3.fr//alice/data/2015/LHC15i/000236248/muon_calo_pass1/AOD/004/AliAOD.Muons.root"
root [7] uold.Data()
(const char *) "root://nansaf01.in2p3.fr//alice/data/2015/LHC15i/000236248/muon_calo_pass1/AOD/004/AliAOD.Muons.root"

Is it already ported to 5.34 ?

Comment by David Smith [ 06/Nov/15 ]

Hi Laurent. Thanks for the feedback. The fix is on the 5.34/6.02/6.04 branches now.

Comment by David Smith [ 06/Nov/15 ]

closing, fixed.

Generated at Sun Sep 22 02:15:21 CEST 2019 using Jira 7.13.1#713001-sha1:5e06076c2d215a6f699b7e5c90ab2fae7ba5a1ce.