Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test failure due to missing symbol _ZN7edm4hep17MutableMCParticle11setMomentumENS_8Vector3fE on LCG_101 ubuntu #167

Closed
wdconinc opened this issue Aug 7, 2022 · 2 comments · Fixed by #169

Comments

@wdconinc
Copy link
Contributor

wdconinc commented Aug 7, 2022

#    - name: Build in LCG view
#      uses: aidasoft/run-lcg-view@v1
#      with:
#        release-platform: ${{ matrix.LCG }}
#        run: |

docker run --rm -it -v /cvmfs:/cvmfs:shared ghcr.io/aidasoft/ubuntu2004:latest /bin/bash
source /cvmfs/sft.cern.ch/lcg/views/LCG_101/x86_64-ubuntu2004-gcc9-opt/setup.sh
git clone https://github.com/AIDAsoft/podio
git clone https://github.com/key4hep/edm4hep

          # build podio
          cmake -B podio-build -S podio \
            -DCMAKE_INSTALL_PREFIX=podio-install \
            -DUSE_EXTERNAL_CATCH2=OFF
          make -C podio-build -j6 install
          
          # build EDM4HEP
          export PODIO=$PWD/podio-install
          unset CMAKE_PREFIX_PATH
          cmake -B edm4hep-build -S edm4hep \
            -DCMAKE_INSTALL_PREFIX=edm4hep-install \
            -DUSE_EXTERNAL_CATCH2=OFF
          make -C edm4hep-build -j6 install

This produces (reproducibly) the following output, after mostly uneventful compilation:

[ 91%] Built target write_events
[ 92%] Built target reco_particle_ref
[ 93%] Linking CXX executable unittests
[ 94%] Built target read_events
[ 96%] Built target edm4hepRDF
[ 98%] Built target edm4hepDict
make[2]: Entering directory '/edm4hep-build'
make[2]: Leaving directory '/edm4hep-build'
make[2]: Entering directory '/edm4hep-build'
[ 98%] Building CXX object test/CMakeFiles/test_rdf.dir/test_rdf.cc.o
/edm4hep-build/test/utils/unittests: symbol lookup error: /edm4hep-build/test/utils/unittests: undefined symbol: _ZN7edm4hep17MutableMCParticle11setMomentumENS_8Vector3fE
CMake Error at /edm4hep-build/_deps/catch2-src/extras/CatchAddTests.cmake:45 (message):
  Error running test executable '/edm4hep-build/test/utils/unittests':

    Result: 127
    Output: 



make[2]: *** [test/utils/CMakeFiles/unittests.dir/build.make:104: test/utils/unittests] Error 1
make[2]: *** Deleting file 'test/utils/unittests'
make[2]: Leaving directory '/edm4hep-build'
make[1]: *** [CMakeFiles/Makefile2:1181: test/utils/CMakeFiles/unittests.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

A potential hint may be in some cling ABI warnings (likely a different version of libstdc++ between compilation time on ubunt 20.04.0 and current ubuntu 20.04.1 compiler, gcc 9.4.0-1ubuntu1~20.04.1):

Warning in cling::IncrementalParser::CheckABICompatibility():
  Possible C++ standard library mismatch, compiled with __GLIBCXX__ '20200808'
  Extraction of runtime standard library version was: '20210601'

though I have not seen this result in undefined symbols.

@tmadlener
Copy link
Contributor

A potential hint may be in some cling ABI warnings (likely a different version of libstdc++ between compilation time on ubunt 20.04.0 and current ubuntu 20.04.1 compiler, gcc 9.4.0-1ubuntu1~20.04.1):

 Warning in cling::IncrementalParser::CheckABICompatibility():
 Possible C++ standard library mismatch, compiled with __GLIBCXX__ '20200808'
 Extraction of runtime standard library version was: '20210601'

though I have not seen this result in undefined symbols.

This one is probably caused by the fact that the LCG release at the time was built with gcc-9.3.0 and Ubuntu has in the meantime updated their compiler. ROOT checks for the __GLIBCXX__ version and warns if there is a mismatch between (ROOT) build time and execution. However, I think this is unrelated to the actual issue.

@andresailer andresailer changed the title Test failure due to missing symbol _ZN7edm4hep17MutableMCParticle11setMomentumENS_8Vector3fE on LCG_101 Test failure due to missing symbol _ZN7edm4hep17MutableMCParticle11setMomentumENS_8Vector3fE on LCG_101 ubuntu Aug 8, 2022
@andresailer
Copy link
Collaborator

test_rdf picks up the libedm4hepRDF library from CVMFS instead of from the local build

ldd edm4hep-build/test/test_rdf 
        linux-vdso.so.1 (0x00007ffec5d1b000)
        libedm4hepRDF.so => /cvmfs/sft.cern.ch/lcg/views/LCG_101/x86_64-ubuntu2004-gcc9-opt/lib/libedm4hepRDF.so (0x00007f89a744a000)

because LD_LIBRARY_PATH is searched before the runpath (the library is in edm4hep-build/dataframe

readelf -a  edm4hep-build/test/test_rdf  | grep -i runpath
 0x000000000000001d (RUNPATH)            Library runpath: [/edm4hep-build/dataframe://podio-install/lib:/edm4hep-build/edm4hep:/cvmfs/sft.cern.ch/lcg/views/LCG_101/x86_64-ubuntu2004-gcc9-opt/lib:/cvmfs/sft.cern.ch/lcg/releases/vdt/0.4.3-992df/x86_64-ubuntu2004-gcc9-opt/lib]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants