[FreeBSD] roofit tests segfault
Check duplicate issues.
- [x] Checked for duplicates
Description
roofit tests (test-stressroofit-batchmode-*) segfault, maybe it rings a bell with the experts I cannot find the culprit (yet):
304: Test 52 : B Physics p.d.f.s......................................OK
304: Test 53 : Automated MC studies...................................OK
304: Test 54 : MC Study with chi^2 calculator.........................OK
304: Test 55 : MC Study with param rand. and Z calc...................OK
304: Test 56 : MC Studies with aux. obs. constraints..................OK
304:
304: *** Break *** segmentation violation
304: ******************************************************************
304: * SYS: FreeBSD hack 13.2-RELEASE-p1 FreeBSD 13.2-RELEASE-p1 GENERIC
304: ******************************************************************
304: ******************************************************************
304: * ROOTMARKS =4262.5 * Root6.29/01 20221221/1150
304: ******************************************************************
304: Time at the end of job = 18.882812 seconds
304: Generating stack trace...
304: 0x0000000826fefe68 in _ZNSt3__112__hash_tableINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_4hashIS6_EENS_8equal_toIS6_EENS4_IS6_EEE25__emplace_unique_key_argsIS6_JRKS6_EEENS_4pairINS_15__hash_iteratorIPNS_1 at /usr/include/c++/v1/__hash_table:2070 from /home/mkrzewic/build/root/lib/libTree.so
304: 0x0000000830314f3e in TClass::TDeclNameRegistry::AddQualifiedName(char const*) at /usr/include/c++/v1/stdexcept:153 from /home/mkrzewic/build/root/lib/libCore.so
304: 0x0000000830315169 in TClass::InsertTClassInRegistryRAII::~InsertTClassInRegistryRAII() at /usr/include/c++/v1/stdexcept:153 from /home/mkrzewic/build/root/lib/libCore.so
304: 0x000000083032618c in TClass::SetUnloaded() at /usr/include/c++/v1/stdexcept:153 from /home/mkrzewic/build/root/lib/libCore.so
304: 0x00000008302d88cb in ROOT::RemoveClass(char const*, TClass*) at /usr/include/c++/v1/stdexcept:153 from /home/mkrzewic/build/root/lib/libCore.so
304: 0x00000008303344d7 in ROOT::TGenericClassInfo::~TGenericClassInfo() at /usr/include/c++/v1/stdexcept:153 from /home/mkrzewic/build/root/lib/libCore.so
304: CMake Error at /home/mkrzewic/build/root/RootTestDriver.cmake:232 (message):
304: error code: 129
304:
304:
1/1 Test #304: test-stressroofit-batchmode-cpu ...***Failed 22.19 sec
Reproducer
ctest -V -R test-stressroofit-batchmode-cpu
ROOT version
master
Installation method
source
Operating system
freeBSD 13.2p1
Additional context
No response
it craps out while removing class TBaseClass, all strings seem valid, segfaults somewhere in unordered_set
Can you upload the output of valgrind --suppressions=$ROOTSYS/etc/valgrind-root.supp stressroofit ... other args .. ?
Thanks for the log. Could you retry to see if it still crashes with current master?
current master does not build with tests enabled. I have the feeling the build system is quite fragile anyway, even without tests enabled it sometimes needs restarting with -j1 to finish. Anyway, with tests enabled, after adding a few system libraries to the linker invocation for cling it craps out on an assertion in TClingUtils:
`
Assertion failed: (decl.isFirstDecl() && "Couldn't trace back include from a decl" " that is not from an AST file"), function GetFileName, file /home/mkrzewic/src/root/core/clingutils/src/TClingUtils.cxx, line 3511.
#0 0x000000082ade5008 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) Signals.cpp:0:0
#1 0x000000082ade2b87 llvm::sys::RunSignalHandlers() Signals.cpp:0:0
#2 0x000000082ade5658 SignalHandler(int) Signals.cpp:0:0
#3 0x000000082bede410 (/lib/libthr.so.3+0x1a410)
#4 0x000000082bedd9cb (/lib/libthr.so.3+0x199cb)
#5 0x000000082134c2d3 ([vdso]+0x2d3)
#6 0x000000082fb641ba thr_kill (/lib/libc.so.7+0x1381ba)
#7 0x000000082fadd5d4 _raise (/lib/libc.so.7+0xb15d4)
#8 0x000000082fb90b59 abort (/lib/libc.so.7+0x164b59)
#9 0x000000082fac07c1 (/lib/libc.so.7+0x947c1)
#10 0x000000082632a415 ROOT::TMetaUtils::GetFileName(clang::Decl const&, cling::Interpreter const&) /home/mkrzewic/src/root/core/clingutils/src/TClingUtils.cxx:3512:10
#11 0x000000082648bc8d RecordDecl2Headers(clang::CXXRecordDecl const&, cling::Interpreter const&, std::__1::set<clang::CXXRecordDecl const*, std::__1::less<clang::CXXRecordDecl const*>, std::__1::allocator<clang::CXXRecordDecl const*>>&) /home/mkrzewic/src/root/core/dictgen/src/rootcling_impl.cxx:3158:25
#12 0x000000082648b2b1 RecordDecl2Headers(clang::CXXRecordDecl const&, cling::Interpreter const&, std::__1::set<clang::CXXRecordDecl const*, std::__1::less<clang::CXXRecordDecl const*>, std::__1::allocator<clang::CXXRecordDecl const*>>&) /home/mkrzewic/src/root/core/dictgen/src/rootcling_impl.cxx:3108:43
#13 0x000000082648b2b1 RecordDecl2Headers(clang::CXXRecordDecl const&, cling::Interpreter const&, std::__1::set<clang::CXXRecordDecl const*, std::__1::less<clang::CXXRecordDecl const*>, std::__1::allocator<clang::CXXRecordDecl const*>>&) /home/mkrzewic/src/root/core/dictgen/src/rootcling_impl.cxx:3108:43
#14 0x000000082648c07b ExtractHeadersForDecls(std::__1::vector<ROOT::TMetaUtils::AnnotatedRecordDecl, std::__1::allocatorROOT::TMetaUtils::AnnotatedRecordDecl> const&, std::__1::vector<clang::TypedefNameDecl const*, std::__1::allocator<clang::TypedefNameDecl const*>>, std::__1::vector<clang::FunctionDecl const*, std::__1::allocator<clang::FunctionDecl const*>>, std::__1::vector<clang::VarDecl const*, std::__1::allocator<clang::VarDecl const*>>, std::__1::vector<clang::EnumDecl const*, std::__1::allocator<clang::EnumDecl const*>>, std::__1::map<std::__1::basic_string<char, std::__1::char_traits
`
btw. the crash happens even before adding libprocstat and libutil (those are used somewhere to get the program name on FreeBSD as procfs is deprecated)