[Rivet] Small problem linking LCG libRivet to Gaudi algorithm in Gauss

Anton Karneyeu Anton.Karneyeu at cern.ch
Mon 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