Standalone Program (HistPresent) with 6.12.04, ub 16.04, g++5.4.0 crash

Dear Rooters,
my HistPresent ran happily for ~20 y with root_0.9 - 6.11.02
With 6.12.04 it crashes anywhere.
valgrind gives 300 lines of diags coming from the 3rd line of main
before any user code:
TRint::TRint(char const*, int*, char**, void*, int, bool) (TRint.cxx:146)

I add the output of :
valgrind --tool=memcheck --suppressions=$ROOTSYS/etc/valgrind-root.supp
ldd which HistPresent
an example of rootcling …
Note: Compiling and linking of root and HistPresent worked without problems

Thanks for a hint where to start
Cheers
Otto

rootcling_61204.txt (246 Bytes)
hpr_61204_valgrind.txt (35.0 KB)
hpr_ldd.txt (3.4 KB)

Hi Otto,
According to the trace back you posted it seems to me that @pcanal may have an idea about it.
Cheers,
Olivier

What does

gROOT->GetListOfCleanups()->ls();

prints when run ‘during’ the failing case?

What is at line 346 of your file HistPresent.cxx ?

Thanks,
Philippe.

PS. Did you recompile completely your code when updating to the latest version of ROOT?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

Hi Otto,

Is this problem resolved?

Thanks,
Philippe.

Otto mentioned:

yes I found my problems:
Essentially some of the destructors had not been prepared
to run without the “normal” constructor,
i.e. dtors used not initialized values.
This never hurt before 6.12.04

Indeed, in v6.12/04 a class which has instance added to a THashList or THashTable will have its default constructor and destructor called; this is part of a new feature checking that if a class overload TObject::Hash, it calls RecursiveRemove in its destructor. In v6.12/06 we reduced this check to only the classes that overload TObject::Hash.

Cheers,
Philippe.