mathcoreVectorCollection() seg fault in 5.34/36

Hello,

I noticed if I compile this example:

root mathcoreVectorCollection.C+

it generates the *.so file. But then I can reproducibly get a segmentation fault if I run it the first time, but the second time it always works:

root [0] gSystem->Load(“mathcoreVectorCollection_C.so”);
root [1] mathcoreVectorCollection()

*** Break *** segmentation violation
#0 0x0000003f210ac7be in ?? () from /lib64/libc.so.6
#1 0x0000000000000000 in ?? ()
Root >
root [2] mathcoreVectorCollection()
Time for new Vector 0.183712 0.12


*Tree :t1 : Tree with new LorentzVector *
*Entries : 10000 : Total = 1854232 bytes File Size = 1667865 *

  •    :          : Tree compression factor =   1.11                       *
    

*Br 0 :tracks : Int_t tracks_ *
*Entries : 10000 : Total Size= 84854 bytes File Size = 24060 *
*Baskets : 4 : Basket Size= 32000 bytes Compression= 3.34 *

*Br 1 :tracks.fCoordinates.fX : Double_t fX[tracks_] *
*Entries : 10000 : Total Size= 443266 bytes File Size = 412929 *
*Baskets : 16 : Basket Size= 32000 bytes Compression= 1.07 *

*Br 2 :tracks.fCoordinates.fY : Double_t fY[tracks_] *
*Entries : 10000 : Total Size= 443266 bytes File Size = 412942 *
*Baskets : 16 : Basket Size= 32000 bytes Compression= 1.07 *

*Br 3 :tracks.fCoordinates.fZ : Double_t fZ[tracks_] *
*Entries : 10000 : Total Size= 443266 bytes File Size = 411390 *
*Baskets : 16 : Basket Size= 32000 bytes Compression= 1.08 *

*Br 4 :tracks.fCoordinates.fT : Double_t fT[tracks_] *
*Entries : 10000 : Total Size= 443266 bytes File Size = 405166 *
*Baskets : 16 : Basket Size= 32000 bytes Compression= 1.09 *

Tree Entries 10000
Time for new Vector 0.0336041 0.03
(int)0

As far as I know our system administrator did a vanilla install of this ROOT version in SL6.

Thanks,

Mark

Hi,

It is maybe a problem with the CINT dictionary, when loading the pre-compiled library. I cannot reproduce this in the ROOT 6 version. As a workaround I suggest you to force the recompilation every time, doing:

root [0] .L tutorials/math/mathcoreVectorCollection.C++
root [1] mathcoreVectorCollection()

Lorenzo

Ok I see, then when using this version we can do a reload each time.

Cheers,

Mark