root-project / root

The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
https://root.cern
Other
2.71k stars 1.28k forks source link

ROOT 6.24/06, aarch64: SOFIE related symbol not found at startup #10877

Closed gganis closed 11 months ago

gganis commented 2 years ago

Could not find any duplicate.

Describe the bug

When starting ROOT on an arm64 machine a symbol-not-found message appears for about 10 times before getting to the prompt. The message is related to SOFIE:

 IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL22make_ROperator_ReshapeERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Reshape(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, TMVA::Experimental::SOFIE::ETensorType, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
Symbol found in '/cvmfs/sft.cern.ch/lcg/releases/ROOT/6.26.04-22463/aarch64-centos7-gcc11-opt/lib/libROOTTMVASofieParser.so'; did you mean to load it with '.L /cvmfs/sft.cern.ch/lcg/releases/ROOT/6.26.04-22463/aarch64-centos7-gcc11-opt/lib/libROOTTMVASofieParser.so'?

ROOT 6.24/06 works fine.

Expected behavior

No warning message

To Reproduce

Steps to reproduce the behavior:

  1. Login on an ARM amchine with cvmfs, e.g. techlab-arm64-thunderx2-01
  2. Source dev4arm source /cvmfs/sft.cern.ch/lcg/views/dev4/Wed/aarch64-centos7-gcc11-opt/setup.sh
  3. Start ROOT, e.g. root -b -q

Setup

  1. ROOT version: 6.26/04
  2. Operating system: aarch64, centos7
  3. LCG stack.

Additional context

Affecting ATLAS (first noticed by Asoka Da Silva)

lmoneta commented 2 years ago

Hi, This is a problem with the module/pre-compiled module generation. Is the configure option runtime_cxxmodules enabled for that build ?

andresailer commented 2 years ago

Hi Lorenzo, runtime_cxxmodules is enabled by default, and we don't disable it, as far as I can tell. I don't see the option being printed by root-config however, any other way to check this is enabled to be sure? Thanks, Andre

lmoneta commented 2 years ago

Ok, I will connect to the machine and investigate it. I was asking about runtime_cxxmodules, because I think I have thinking this was a problem by using the pre-compiled headers, which are used when runtime_cxxmodules is disabled.

stephanlachnit commented 2 years ago

I have the same problem as well (on ROOT 6.26/04, amd64). I compiled with both cxxmodules and runtime_cxxmodule disabled.

Output when running ROOT
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL18make_ROperator_AddERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Add(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL18make_ROperator_GRUERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_GRU(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL19make_ROperator_GemmERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Gemm(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL24make_ROperator_TransposeERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Transpose(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL19make_ROperator_SeluERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Selu(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL18make_ROperator_RNNERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_RNN(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL19make_ROperator_PoolERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Pool(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL22make_ROperator_ReshapeERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Reshape(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL19make_ROperator_ConvERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Conv(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL19make_ROperator_LSTMERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_LSTM(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL33make_ROperator_BatchNormalizationERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_BatchNormalization(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL22make_ROperator_SigmoidERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Sigmoid(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL19make_ROperator_ReluERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Relu(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN4TMVA12Experimental5SOFIE8INTERNAL20make_ROperator_SliceERKN4onnx9NodeProtoERKNS3_10GraphProtoERSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_11ETensorTypeESt4hashISG_ESt8equal_toISG_ESaISt4pairIKSG_SH_EEE' unresolved while linking function '_GLOBAL__sub_I_cling_module_0'!
You are probably missing the definition of TMVA::Experimental::SOFIE::INTERNAL::make_ROperator_Slice(onnx::NodeProto const&, onnx::GraphProto const&, std::unordered_map, std::allocator >, TMVA::Experimental::SOFIE::ETensorType, std::hash, std::allocator > >, std::equal_to, std::allocator > >, std::allocator, std::allocator > const, TMVA::Experimental::SOFIE::ETensorType> > >&)
Maybe you need to load the corresponding shared library?

Edit: I can suppress this output with running explicitly LD_PRELOAD=libROOTTMVASofieParser.so root (note that on my setup libROOTTMVASofieParser.so is in the linker's search path). To me this seems like a linking issue.

I found commit https://github.com/root-project/root/commit/9c483526de2de3474e6d45982ec532555e030987 on master, but applying it to v6.26/04 did not fix it for me.

stephanlachnit commented 1 year ago

See https://github.com/ellert/root/pull/1#issuecomment-1318452190, this is fixed in 6.26.08

lmoneta commented 11 months ago

This has been fixed in 6.26.08 and in 6.28 the namespace TMVA::Experimental::SOFIE::INTERNAL has been removed in 6.28