-
Notifications
You must be signed in to change notification settings - Fork 1.5k
ROOT 6.24 breaks Alice O2 due to symbol confusion with system llvm 11 #8180
Copy link
Copy link
Description
Compile Alice O2 with ROOT 6.24 and run a simulation, but I get crashes which apparently come due to symbol confusion with my system llvm 11. Here is a stack trace:
0x00007fffee8b09a4 in llvm::detail::UniqueFunctionBase<llvm::Expected<unsigned long>>::CallbacksHolder<llvm::orc::LegacyRTDyldObjectLinkingLayer::ConcreteLinkedObject<std::shared_ptr<llvm::RuntimeDyld::MemoryManager> >::getSymbolMaterializer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}, llvm::orc::LegacyRTDyldObjectLinkingLayer::ConcreteLinkedObject<std::shared_ptr<llvm::RuntimeDyld::MemoryManager> >::getSymbolMaterializer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}, void>::Callbacks () from /usr/lib/llvm/11/lib64/libLLVM-11.so
(gdb) bt
#0 0x00007fffee8b09a4 in llvm::detail::UniqueFunctionBase<llvm::Expected<unsigned long>>::CallbacksHolder<llvm::orc::LegacyRTDyldObjectLinkingLayer::ConcreteLinkedObject<std::shared_ptr<llvm::RuntimeDyld::MemoryManager> >::getSymbolMaterializer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}, llvm::orc::LegacyRTDyldObjectLinkingLayer::ConcreteLinkedObject<std::shared_ptr<llvm::RuntimeDyld::MemoryManager> >::getSymbolMaterializer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda()#1}, void>::Callbacks () from /usr/lib/llvm/11/lib64/libLLVM-11.so
#1 0x00007fffe3871543 in std::_Function_handler<llvm::Expected<unsigned long> (), llvm::orc::LazyEmittingLayer<llvm::orc::LegacyIRCompileLayer<cling::IncrementalJIT::RemovableObjectLinkingLayer, llvm::orc::SimpleCompiler> >::EmissionDeferredModule::find(llvm::StringRef, bool, llvm::orc::LegacyIRCompileLayer<cling::IncrementalJIT::RemovableObjectLinkingLayer, llvm::orc::SimpleCompiler>&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) () from /usr/lib/root/6.24/lib/libCling.so
#2 0x00007fffe38610dd in cling::IncrementalExecutor::getPointerToGlobalFromJIT(llvm::StringRef) const () from /usr/lib/root/6.24/lib/libCling.so
#3 0x00007fffe37e8176 in cling::Interpreter::Interpreter(int, char const* const*, char const*, std::vector<std::shared_ptr<clang::ModuleFileExtension>, std::allocator<std::shared_ptr<clang::ModuleFileExtension> > > const&, bool, cling::Interpreter const*) () from /usr/lib/root/6.24/lib/libCling.so
#4 0x00007fffe3738a79 in TCling::TCling(char const*, char const*, char const* const*) () from /usr/lib/root/6.24/lib/libCling.so
#5 0x00007fffe373a9a1 in CreateInterpreter () from /usr/lib/root/6.24/lib/libCling.so
#6 0x00007ffff05eaafd in TROOT::InitInterpreter() () from /usr/lib/root/6.24/lib/libCore.so.6.24
#7 0x00007ffff05eafdf in ROOT::Internal::GetROOT2() () from /usr/lib/root/6.24/lib/libCore.so.6.24
#8 0x00007ffff06eee6c in TClass::GetClass(std::type_info const&, bool, bool, unsigned long, unsigned long) () from /usr/lib/root/6.24/lib/libCore.so.6.24
#9 0x00007ffff3529838 in o2::conf::ConfigurableParamHelper<o2::conf::KeyValParam>::putKeyValues (tree=0x5555556a24a0, this=0x7ffff35743e0 <o2::conf::KeyValParam::sInstance>) at /home/qon/alice/sw/SOURCES/O2/dev/0/Common/Utils/include/CommonUtils/ConfigurableParamHelper.h:138
#10 o2::conf::ConfigurableParam::initPropertyTree () at /home/qon/alice/sw/SOURCES/O2/dev/0/Common/Utils/src/ConfigurableParam.cxx:265
#11 0x00007ffff3529953 in o2::conf::ConfigurableParam::initialize () at /home/qon/alice/sw/SOURCES/O2/dev/0/Common/Utils/src/ConfigurableParam.cxx:357
#12 0x00007ffff352fbc5 in o2::conf::ConfigurableParam::updateFromFile (configFile="", paramsList="", unchangedOnly=unchangedOnly@entry=false) at /home/qon/alice/sw/SOURCES/O2/dev/0/Common/Utils/src/ConfigurableParam.cxx:386
#13 0x0000555555564294 in o2sim_init (asservice=<optimized out>) at /home/qon/alice/sw/SOURCES/O2/dev/0/run/../macro/o2sim.C:54
#14 0x00005555555673c3 in o2sim (asservice=asservice@entry=false) at /home/qon/alice/sw/SOURCES/O2/dev/0/run/../macro/o2sim.C:230
#15 0x000055555555f5bf in main (argc=-38592, argv=<optimized out>) at /home/qon/alice/sw/SOURCES/O2/dev/0/run/o2sim.cxx:30
This is on 64 bit Gentoo Linux compiling ROOT myself with GCC 10.2.
I assume the llvm11 is pulled in by libgandiva of apache-arrow, which links to my system llvm.
I do not see this problem with ROOT 6.22.08 (setup identical otherwise), so I assume it might be to the bump of the LLVM version in ROOT.
So far I have tried the 6.24.00 tag and the v6-24-00-patches branch, both with the same result.
For reference, we had very similar issues quite a while ago, which was fixed by #4689, although perhaps now it is the other way around, with ROOT linking to my llvm11 symbols.
Reactions are currently unavailable