Using a non default xrootd port

Hello all

if I try to modify the default xrootd port, with xrd directives that look like

xrd.port 11094

if exec xrootd
xrd.protocol xproofd:1093

Proof complains at the merging step, with error messages that look like

TProofOutputFile::AddFile: error from TFileMerger::AddFile(root://

I checked that I can access the file if using the right port root://….

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

Any hint?

thanks, carlos

Hi Carlos,

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.


Hi Gerri,

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)

thanks carlos

Bizarre … can you post the log of one of the workers?

Cheers, Gerri

Hi Gerri

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.

cheers, carlos
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 [3] 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 :frowning:


weird, I just added the line
xpd.putenv LOCALDATASERVER root://:11094/

(without substituting the string ).


Sorry, my (usual) mistake!
The directive misses a ‘=’:

xpd.putenv LOCALDATASERVER=root://<host>:11094/

Try this and let me know.

oh right, now it works!

thanks Gerri,