I was trying to activate the bonjour functionality on our farm, but I didnt succeeded so far. So maybe I can get some help.
In the configuration file I substituted the directives xpd.worker and xpd.master by the following block
if pftest02.pic.es
xpd.bonjour discover
else
xpd.bonjour register cores=4
fi
After restart, when trying to open a proof session I get
$ root -l
root [0] TProof::Open("pftest02.pic.es")
Starting master: opening connection ...
Starting master: OK
+++ Query cannot be processed now: enqueued
Error in <TProof::StartSlaves>: no resources available or problems setting up workers (check logs)
Error in <TProof::Open>: new session could not be created
(class TProof*)0x0
From the log of the master, I get a similar message, “no workers currently available”, while from the log of the workers there is no single trace of the connection request.
Do you use ‘xproofd’ or ‘xrootd + libXrdProofd.so’ ?
It may be a problem of port detection due to the default protocol.
I will ask the author to follow the thing.
To set a custom port for the registration (for the discovery is not needed, it cames from the Bonjour resolver, in your case, Avahi), the system should take the port that you have set up in the config file with the port directive xpd.port (you should have to use this in all the processes you want to be different than the default 1093)
Just to make sure, the Bonjour names and service tipes are not DNS names nor host names, they are internal stuff to make de mDNS discovery, that gets translated fo FQDN and ports after that, so, in summary, you can put whatever you want there, and the system will use it for discovery. Then, it will get translated to DNS + port.
Would you be kind to test this way of configuration and then I will check the code to see if there is any bug related to port detection?
In fact, I am not using anything different from the default. I was testing the bonjour feature with a minimal configuration:
### Load the XrdProofdProtocol to serve PROOF sessions
if exec xrootd
xrd.protocol xproofd:1093 libXrdProofd.so
fi
xpd.port 1093
if pftest02.pic.es
xpd.bonjour discover
else
xpd.bonjour register cores=4
fi
Therefore, xproofd is already on 1093, but still I try to put explicitly the directive
xpd.port 1093
and I did not observe any change in the log. Still in the discovery part it sees
110113 14:46:20 16889 xpd-I: NetMgr::ProcessBonjourUpdate: parsing info for node: 192.158.96.10, port: 1094
More or less I know what is going on. May I ask you if you can post a copy of the output of the avahi-browse command with the options -v -t -a -r (just to see the resolution of the services)?
This is was I was thinking looking at the code, the slaves, for some reason are not registering using the proper port (that should be 1093), instad, it is defaulting to 1094 whatever port you choose. I will issue a patch as soon as possible.
I have been reproducing the issue in our testing cluster and, unfortunately, I couldn’t do it. I have used the same config file as you, and the same ports and process structure and, in all cases the master discovered the slave correctly.
What version of ROOT are you using? And what Avahi version are you running on? Are you running Avahi as-is or with the mDNS compatibility layer?
this typically will allocate xrootd on default 1094 and with the following lines in the conf file
if exec xrootd
xrd.protocol xproofd:1093 libXrdProofd.so
fi
it will allocate proofd on 1093.
If I add “-p 88888” to the daemon line, then avahi will register and discover this port 88888.
Then maybe the difference is that you are starting daemon xproofd directly on 1093 as Gerri was suggesting?
I hope this can help…
I am using root 5.28.00, avahi 0.6.16-9 and I am not sure about the mDNS compatibility layer (let me know how to find out if that is important), though the compat package is there.
this typically will allocate xrootd on default 1094 and with the following lines in the conf file
if exec xrootd
xrd.protocol xproofd:1093 libXrdProofd.so
fi
it will allocate proofd on 1093.
If I add “-p 88888” to the daemon line, then avahi will register and discover this port 88888.
Then maybe the difference is that you are starting daemon xproofd directly on 1093 as Gerri was suggesting?
I hope this can help…
I am using root 5.28.00, avahi 0.6.16-9 and I am not sure about the mDNS compatibility layer (let me know how to find out if that is important), though the compat package is there.
cheers, carlos[/quote]
Yes, I’m starting the daemon just putting the port settings on the config file, not on the command line. Let me try to see if something is not getting properly overridden and it is getting the wrong port.
Thanks to Ramón this should be fixed in the trunk and 5-28-00-patches.
Note that ‘xpd.port’ must appear in the config file before ‘xpd.bonjour’ (as in the sample you posted).