Re: : PROOF

From: Gerardo Ganis <Gerardo.Ganis_at_cern.ch>
Date: Wed, 20 Jul 2005 11:28:40 +0200 (CEST)

  Hi Isidro,

  Yes, there is a problem with authentication.   The first step (Client->Master) uses SSH which, unfortunately   does not allow proper forward of the credentials to the master.   The authentications master->slaves then fail.

  I assume you do not have the possibility to use a network-like   protocol like kerberos or globus.

  The best is then to authenticate with a password. But to be able   to use your standard (system) password on the machine the proofds   should be started with 'root' privileges, e.g. via (x)inetd with   a startup script as the one mentioned in README/README.PROOF .

  A non-priviliged proofd can test AFS passwords, but for this it   needs to be built with AFS support: this is not the default because   the AFS libraries needed are only in the development AFS package.   But if you happen to have these (look, for example, for libkauth.a,   ...) then this can also be an option.

  If none of the above is possible, then the best is to create a   ROOT password file in your $HOME on each machine (master included):   the file must be called .rootdpass and contain the crypt hash of   a password you have chosen. You can use the 'crypt' script under   proof/utils

  $> proof/utils/crypt <secret_passwd> > $HOME/.rootdpass   $> chmod 0600 $HOME/.rootdpass

  You should enter <secret_passwd> when you run gROOT->Proof(...)   and that should be correctly transmitted at all stages.   Of course this is much easier to be done if the machines share   the same home directories.

  Please try to locate which solution best fits your case. I can   give you then more detailed instruction to help you in   making it working.   

  Cheers, Gerri

On Tue, 19 Jul 2005 iglez_at_mail.cern.ch wrote:

> Dear Gerri,
> With your help I managed to run some jobs in proof mode. But this
> was done in a single machine. We have around 90 dual CPU machines (with
> hyperthreading which means 4 CPU per machine) that I would like to use to
> improve our analysis. Unfortunatelly when try to install PROOF in 2 such
> machines I face my first problems. It seems there is a problem with
> authentication since I get the following errors:
>
> root [0] gROOT->Proof("eifca02.ifca.org.es")
> iglez_at_eifca02.ifca.org.es password:
> iglez_at_eifca02.ifca.org.es's password:
> Warning in
> <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Warning in <Krb5Authenticate> on master0: not a tty: cannot prompt for
> credentials, returning failure
> Warning in <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Info in <TAuthenticate::Authenticate> on master0: failure: list of
> attempted methods: UsrPwd
> Error in <TAuthenticate::Authenticate> on master0: wrong passwd (host
> equivalence: no files found) (last error only; re-run with gDebug > 0 for
> more details)
> Error in <TSocket::Authenticate> on master0: authentication failed for
> iglez_at_eifca03.ifca.org.es
> Warning in <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Warning in <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Info in <TAuthenticate::Authenticate> on master0: failure: list of
> attempted methods: UsrPwd
> Error in <TAuthenticate::Authenticate> on master0: wrong passwd (host
> equivalence: no files found) (last error only; re-run with gDebug > 0 for
> more details)
> Error in <TSocket::Authenticate> on master0: authentication failed for
> iglez_at_eifca03.ifca.org.es
> Warning in <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Warning in <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Info in <TAuthenticate::Authenticate> on master0: failure: list of
> attempted methods: UsrPwd
> Error in <TAuthenticate::Authenticate> on master0: wrong passwd (host
> equivalence: no files found) (last error only; re-run with gDebug > 0 for
> more details)
> Error in <TSocket::Authenticate> on master0: authentication failed for
> iglez_at_eifca03.ifca.org.es
> Warning in <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Warning in <TAuthenticate::PromptPasswd> on master0: not tty: cannot
> prompt for passwd, returning -1
> Info in <TAuthenticate::Authenticate> on master0: failure: list of
> attempted methods: UsrPwd
> Error in <TAuthenticate::Authenticate> on master0: wrong passwd (host
> equivalence: no files found) (last error only; re-run with gDebug > 0 for
> more details)
> Error in <TSocket::Authenticate> on master0: authentication failed for
> iglez_at_eifca03.ifca.org.es
> PROOF set to parallel mode (4 slaves)
> (class TVirtualProof*)0x94ba5d0
>
>
> root [1] gProof->Exec(".!uname -a")
> Linux eifca02.ifca.org.es 2.4.21-32.0.1.ELsmp #1 SMP Wed May 25 15:42:26
> CDT 2005 i686 i686 i386 GNU/Linux
> Linux eifca02.ifca.org.es 2.4.21-32.0.1.ELsmp #1 SMP Wed May 25 15:42:26
> CDT 2005 i686 i686 i386 GNU/Linux
> Linux eifca02.ifca.org.es 2.4.21-32.0.1.ELsmp #1 SMP Wed May 25 15:42:26
> CDT 2005 i686 i686 i386 GNU/Linux
> Linux eifca02.ifca.org.es 2.4.21-32.0.1.ELsmp #1 SMP Wed May 25 15:42:26
> CDT 2005 i686 i686 i386 GNU/Linux
> (Int_t)0
> root [2] gProof->Print()
> Connected to: eifca02.ifca.org.es (valid)
> Port number: 1093
> User: iglez
> Security context: Method: 4 (SSH) expiring on Wed Jul 20 11:50:59
> 2005
> Proofd protocol version: 11
> Client protocol version: 4
> Remote protocol version: 4
> Log level: 0
> *** Master server 0 (parallel mode, 4 slaves):
> Master host name: eifca02.ifca.org.es
> Port number: 1093
> User: iglez
> Protocol version: 4
> Image name: eifca02.ifca.org.es
> Working directory:
> /home/iglez/proof/master-0-eifca02-1121766663-27534
> Config directory: /opt/root
> Config file: /opt/root/proof/etc/proof.conf
> Log level: 0
> Number of slaves: 8
> Number of active slaves: 4
> Number of unique slaves: 0
> Number of bad slaves: 4
> Total MB's processed: 0.00
> Total real time used (s): 0.260
> Total CPU time used (s): 0.040
>
> I believe that the problem has to do with the fact that the login in this
> machine happens with an AFS password (I collegue has another set of
> machines with local and AFS logins and he work it with the local password
> but not with the AFS password). Is there anything I should take into
> account for this case? Is there any recipe on how to properly install
> this? Any help will be very welcome.
>
> Thank you very much,
>
> Isidro
>
>
> On Tue, 7 Jun 2005, Gerardo Ganis wrote:
>
> >
> >
> > Hi Isidro,
> >
> > The master will look for a Merge method for the class and
> > call it. For histograms, trees, ... this is already defined
> > so you will get these objects already merged.
> >
> > For a new class you should add a method
> >
> > Int_t Merge(TCollection *list);
> >
> > where you do the merge of the objects in the list (the return
> > value is not checked by TProofPlayer, so it does not matter
> > too much what you put there).
> > If the Merge method is not found, the objects are just returned
> > as they are, which is what you see in your simple example.
> >
> > Hope it helps,
> >
> > Cheers, Gerri
> >
> >
> >
> >
> > On Tue, 7 Jun 2005 iglez_at_mail.cern.ch wrote:
> >
> > > Thanks for the corrections Gerardo! I have used them succesfully. From
> > > what I see I will get an object of type MyCounter from each slave and is
> > > my duty to merge them. Why is that not the case for histograms? Which is
> > > the list of ROOT classes that are different? What would happen if I have a
> > > histogram into my class (that is my real case)? Would I have to take care
> > > of the merging?
> > >
> > > Thanks for your help,
> > >
> > > Isidro
> > >
> > >
> > > On Tue, 7 Jun 2005, Gerardo Ganis wrote:
> > >
> > > >
> > > >
> > > > Dear Isidro,
> > > >
> > > > Please find attached a modified version of your directory
> > > > which should do what you expect.
> > > >
> > > > There were a few small issues.
> > > >
> > > > Proper object transfer require full I/O functionality and
> > > > therefore a dictionary for the class, which should be known
> > > > by the slaves. The best way is to make a package with new
> > > > classes, to upload and enable it.
> > > > PROOF provides the PAR files for this, which unfortunately
> > > > is not documented yet.
> > > >
> > > > For that you should create a directory with the name of the
> > > > package (e.g. MyCounter) and copy the class files in there:
> > > >
> > > > > mkdir MyCounter
> > > > > cp MyCounter.C MyCounter
> > > > > cp MyCounter.h MyCounter
> > > >
> > > > Then you have give the instructions about how to use this things.
> > > > These go into a macro called SETUP.C and located in a PROOF-INF
> > > > subdirectory of MyCounter:
> > > >
> > > > > mkdir MyCounter/PROOF-INF
> > > > > cat > MyCounter/PROOF-INF/SETUP.C <<EOF
> > > > {
> > > > // Build dictionary
> > > > Printf("Building dictionary MyCounter ...");
> > > > gROOT->ProcessLine(".L MyCounter.C+");
> > > >
> > > > // Enlarge include path (for MyCounter.h)
> > > > TString Ipath(Form("-I%s %s",gSystem->pwd(),gSystem->GetIncludePath()));
> > > > gSystem->SetIncludePath(Ipath.Data());
> > > > Printf("Include path set to: %s", gSystem->GetIncludePath());
> > > > }
> > > > EOF
> > > >
> > > > SETUP.C is executed when the package is enabled. The second part
> > > > is needed because MySelector.C needs to include "MyCounter.h"
> > > >
> > > > One you have done this, you have to pack everything into MyCounter.par
> > > >
> > > > > tar czvf MyCounter.par MyCounter
> > > >
> > > >
> > > > Now you can execute execProof_m.C, a modified version of your execProof.C .
> > > > I have put comments in there, I hope they are clear enough.
> > > > Please note that in your original macro the selector specification
> > > > was incorrect into "chain->Process()": you need to specify the
> > > > file name ("MySelector.C"), not just the selector name.
> > > >
> > > > Finally, in MySelector::Terminate, there is a problem (under investigation)
> > > > finding objects of new classes with FindObject. However, if you iterate
> > > > on the list, it works. See the modified file.
> > > >
> > > > Please try and let me know.
> > > >
> > > > Cheers, Gerri
> > > >
> > > >
> > > >
> > > >
> > > > On Thu, 2 Jun 2005 iglez_at_mail.cern.ch wrote:
> > > >
> > > > > Dear Fons,
> > > > > I have being fighting with PROOF for more than a week. I succeded
> > > > > in filling histograms following the code in the h1analysis tutorial.
> > > > > However my code needs to do more complex things including some counters
> > > > > (of course I need histograms coupled with counters, etc... i.e. my own
> > > > > objects). I tried something as simple as wrapping a counter on a class
> > > > > inheriting from TObject (see in the attached file MyCounter.h). I compile
> > > > > it into ROOT using the buil-in mechanism in ROOT. If you look in
> > > > > MySelector.C (automatically generated from the tutorial root ntuple
> > > > > mlpHiggs.root with MakeSelector -see the makeselector.C script-)
> > > > > I have added a few cout's and the initialisation (inside SlaveBegin()),
> > > > > registration (idem, into fOutput) and use (inside Process(...)) of a
> > > > > MyCounter object. I tried to retrieve it afterwards inside the Terminate()
> > > > > method, but the object is not any more in fOutput as it happens with
> > > > > histograms. During the proccessing I get the following 3 errors several
> > > > > times:
> > > > >
> > > > > Error in <TClass::Load> on master0: dictionary of class MyCounter not found
> > > > > Error in <THashList::AddLast> on master0: argument is a null pointer
> > > > > Error in <THashTable::Add> on master0: argument is a null pointer
> > > > >
> > > > > I have spent a couple of days trying to find out the reason for this but I
> > > > > did not succeed. Any help will be very welcome. Thank you very much!!!
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Isidro
> > > > >
> > > > > PS.: You may run everything with the execProof.C script just changing your
> > > > > PROOF server
> > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> >
> >
> >
>
>
Received on Wed Jul 20 2005 - 11:33:22 MEST

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:10 MET