if I try to modify the default xrootd port, with xrd directives that look like
if exec xrootd
xrd.protocol xproofd:1093 libXrdProofd.so
Proof complains at the merging step, with error messages that look like
TProofOutputFile::AddFile: error from TFileMerger::AddFile(root://pwork02.pic.es//home/proof/cosuna/session-pf001-1281622187-7079/worker-0.6-pf002-1281622193-17248//ttbar5200LocalNtuple.root)
I checked that I can access the file if using the right port root://pwork02.pic.es:11094//….
If I comment out the line xrd.port 11094, then proofd is located at 1093 and xrootd at 1094 and then it works. It seems that TProofOutputFiles does not know that the xrootd port is not the default.
Im using root-5.26.00-proof-04
For a daemon running the two protocols (XrdXrootd and XrdProofd) the information is available in the env variable XRD_PORT (or similar). However, when we run xproofd alone, the information must be input by hand (or, in the future, using an autodiscovery system …).
We can probably automatize the first case. We will see.
For the moment try by adding:
xpd.putenv LOCALDATASERVER root://<host>:11094/
( will be resolved to the local host: leave it as it is …).
Let me know.
In fact I thought the daemon was running the two protocols. Not sure to understand this point, but when running the daemon I get xrootd on 1094 and xproofd on 1093 if I dont change the defaults.
Anyway I tried by adding this line to the conf and the error changes but still I getting errors from the Merger
TProofOutputFile::AddFile: error from TFileMerger::AddFile(file:/home/proof/cosuna/session-pf001-1282641059-9498/worker-0.50-pf004-1282641080-3009//ttbar5200LocalNtuple.root)
Bizarre … can you post the log of one of the workers?
I attach the log of one of the workers and the relevant part of the master.
Please, let me know if you find something there.
worklog.txt (2.82 KB)
masterlog.txt (12.5 KB)
Uhm … it looks like the variable is not set.
What’s the output of
root  proof->Exec("gSystem->Getenv(\"LOCALDATASERVER\")")
Can you also look in user’s worker sandboxes for a file of the type .env and check the content in there? It should contain the definition of LOCALDATASERVER …
Ohh right, it is not “well” set
root  gProof->Exec(“gSystem->Getenv(“LOCALDATASERVER”)”)
(const char* 0x0)""
(const char* 0x0)""
and looking at .env file of one of the workers, the variable is set to an empty value
weird, I just added the line
xpd.putenv LOCALDATASERVER root://:11094/
(without substituting the string ).
Sorry, my (usual) mistake!
The directive misses a ‘=’:
Try this and let me know.