|
[Rivet] Small problem linking LCG libRivet to Gaudi algorithm in GaussAnton Karneyeu Anton.Karneyeu at cern.chMon Sep 5 16:04:44 BST 2011
Hi Alex, I am forwarding your mail to Rivet team to comment about crash in libRivet at runtime. Could you please also prepare step-by-step instruction on how to run the example in ~agrecu/public/Gen/GenAnalysis and reproduce the crash - this will be very helpful. For the Rivet package installed at genser repo we do not specify anything related to AIDA implementation (and as I knew there is no such options at all), so that the internal Rivet implementation (LWH) is used. For the reference here is all configure options which we specify: ./configure --prefix=/afs/cern.ch/sw/lcg/external/MCGenerators/rivet/1.6.0/x86_64-slc5-gcc43-opt --with-hepmc=/afs/cern.ch/sw/lcg/external/HepMC/2.03.11/x86_64-slc5-gcc43-opt --with-boost-incpath=/afs/cern.ch/sw/lcg/external/Boost/1.44.0_python2.6/x86_64-slc5-gcc43-opt/include/boost-1_44 --with-fastjet=/afs/cern.ch/sw/lcg/external/fastjet/2.4.2p1/x86_64-slc5-gcc43-opt --with-gsl=/afs/cern.ch/sw/lcg/external/GSL/1.10/x86_64-slc5-gcc43-opt --with-lcgtag=x86_64-slc5-gcc43-opt --enable-unvalidated PYTHON=/afs/cern.ch/sw/lcg/external/Python/2.6.5/x86_64-slc5-gcc43-opt/bin/python SWIG=/afs/cern.ch/sw/lcg/external/swig/1.3.40/x86_64-slc5-gcc43-opt/bin/swig Cheers, Anton Alex Grecu: > Hi all, > > Yesterday I kept working on this issue hoping to find a solution. So I > tried recompiling the rivet package separately but still using the LCG > libraries (HepMC, Boost, GSL, so on) and then patching the LCG CMT > interface so that the loaded Rivet library at runtime is my own build. I > tried setting the CXXFLAGS environment variable to > "-D LWH_USING_AIDA -U __GXX_WEAK__" to force the library to be compiled > with LCG version of AIDA and without weak references (see > "https://svnweb.cern.ch/trac/gaudi/browser/Gaudi/trunk/GaudiKernel/doc/dynamic_cast.pb" > for details about the Gaudi hack for weak references). The result is the > same - crash in libRivet at runtime in the finalize method when a ITree > leaf is dynamic_cast to IProfile1D! I don't know if I did the right > thing but I think I need to share with you the tests I make in order to > expedite the finding of a solution. Hope it doesn't spoil you weekend! > > Best regards, > Alex > > PS: If you have any other ideas that you think I may try, please let me > know! > > ---------------------- > LHCb Experiment > Office: 11/1-014 > Phone:+41 22 76 79058 > Postbox: F26500 > > > On 9/2/2011 19:52, Witold Pokorski wrote: >> >> I am away from cern now, but I am sure that Anton (in cc) can help. >> >> Cheers, >> Witek >> >> >> >> On 2 Sep 2011, at 12:58, "Alex Grecu" <Alex.Grecu at cern.ch >> <mailto:Alex.Grecu at cern.ch>> wrote: >> >>> Dear Witek, >>> >>> I'm Alex Grecu, the person in charge of providing LHCb with an >>> algorithm that allows running Rivet analyses from our >>> MC-generator/simulation project Gauss. I finally wrote my algorithm >>> and it runs perfectly till the finalize() method of the algorithm >>> where it either crashes or throws a bad_alloc whenever the AIDA >>> objects created by libRivet (LCG compiled package) are accessed. I >>> spent the last 3 days digging deeply into Rivet and Gauss/Gaudi >>> source code and I noticed that Rivet uses by default the LWH >>> implementation of AIDA while Gaudi uses the LCG AIDA package. I would >>> need a confirmation from you or your LCG experts whether this is the >>> case and the LCG rivet package was compiled using this LWH >>> implementation of AIDA rather than the LCG one. For debugging reasons >>> I have the current version of the algorithm in my public directory on >>> lxplus (~agrecu/public/Gen/GenAnalysis). The code crashes with >>> "Segmentation violation" in a dynamic_cast call if it is compiled >>> without forcing libRivet to use the LCG AIDA package (by default and >>> including AIDA headers from LWH/...) and it issues a bad_alloc if I >>> force (#define LWH_USING_AIDA 1) before including the Rivet headers - >>> this is the version of the code in my public directory (#includes of >>> AIDA objects from AIDA/). I'm at your disposal for further details >>> and/or live demonstrations (office 11-1-014 phone: 79058). >>> In short, please let me know if the LCG rivet package is compiled >>> with another implementation of AIDA than the LCG one or please let me >>> know if I'm doing something utterly wrong as I have little experience >>> with RTTI related issues! >>> Thank you in advance for any hints or details that you may provide! >>> >>> Best regards, >>> Alex >>>
More information about the Rivet mailing list |