JuliaHEP / Geant4.jl

Apache License 2.0
25 stars 5 forks source link

Geant4 libs won't load #3

Closed oschulz closed 1 year ago

oschulz commented 1 year ago

@peremato, I currently run into this:

pkg> st Geant4
Status `/user/.julia/environments/geant4/Project.toml`
  [559df036] Geant4 v0.1.3

[ Info: Precompiling Geant4 [559df036-b7a0-42fd-85df-7d5dd9d70f44]
ERROR: LoadError: InitError: could not load library "/user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4digits_hits.so"
/opt/geant4/lib/libG4graphics_reps.so: cannot allocate memory in static TLS block
peremato commented 1 year ago

Hi Oliver. I guess this is a conflict with your locally installed Geant4 libraries. All libraries should come from the artifacts (/user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib) and not /opt/geant4/lib.

oschulz commented 1 year ago

Sure, but typically Julia artifacts are loaded no matter if the lib is installed locally. I wonder why the local installation is not ignored here. People working on larger shared systems, resp. pre-configured computing environments, may not be able to "disable" a local installation easily ...

oschulz commented 1 year ago

@giordano , do we have to do anything to ensure artifacts take priority of stuff on LD_LIBRARY_PATH here? With other packages, like HDF5, my local installation is always ignored automatically.

peremato commented 1 year ago

You are right it should not happen. On which OS are you?

giordano commented 1 year ago

do we have to do anything to ensure artifacts take priority of stuff on LD_LIBRARY_PATH here?

No, LD_LIBRARY_PATH will always have priority because. If that's a problem, you have to prune the environment variable.

peremato commented 1 year ago

In any case there is some fishy. With an environment with LD_LIBRARY_PAH, after loading Geant4 I get libraries from both places. Dumping the list of libraries with gdb I get:

From                To                  Syms Read   Shared Object Library
0x00007ffff7dcf050  0x00007ffff7df1ff2  Yes         /lib64/ld-linux-x86-64.so.2
0x00007ffff7bcae70  0x00007ffff7bcba82  Yes         /lib64/libdl.so.2
0x00007ffff79b0840  0x00007ffff79bece5  Yes         /lib64/libpthread.so.0
0x00007ffff7606c80  0x00007ffff7752d7d  Yes         /lib64/libc.so.6
0x00007ffff7fd6100  0x00007ffff7fd82a1  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libjulia.so.1
0x00007ffff7fa9310  0x00007ffff7fba701  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libgcc_s.so.1
0x00007ffff73bc0b0  0x00007ffff73da206  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libopenlibm.so
0x00007ffff6e21a20  0x00007ffff6fc3d11  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libjulia-internal.so.1
0x00007ffff7f89350  0x00007ffff7f96ee3  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libunwind.so.8
0x00007ffff6bed430  0x00007ffff6bf0770  Yes         /lib64/librt.so.1
0x00007ffff69d23c0  0x00007ffff69e3706  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libz.so.1
0x00007ffff7f7f140  0x00007ffff7f81d9c  Yes (*)     /cvmfs/sft.cern.ch/lcg/releases/gcc/11.3.0-ad0f5/x86_64-centos8/lib64/libatomic.so.1
0x00007ffff6861200  0x00007ffff6951a12  Yes (*)     /cvmfs/sft.cern.ch/lcg/releases/gcc/11.3.0-ad0f5/x86_64-centos8/lib64/libstdc++.so.6
0x00007ffff644a520  0x00007ffff64e970a  Yes         /lib64/libm.so.6
0x00007ffff621a5d0  0x00007ffff6231516  Yes         /lib64/liblzma.so.5
0x00007ffff7e5a470  0x00007ffff7f51001  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libjulia-codegen.so.1
0x00007ffff2209b00  0x00007ffff4b56392  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libLLVM-13jl.so
0x00007fffe22124c0  0x00007fffe3753741  Yes         /build/julia/julia-1.8.5/lib/julia/sys.so
0x00007fffe16d7260  0x00007fffe17423e2  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libpcre2-8.so
0x00007fffe1346080  0x00007fffe13ba7a7  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libgmp.so
0x00007fffe12c4370  0x00007fffe131e40d  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libmpfr.so
0x00007fffdf56c000  0x00007fffe1013cc1  Yes         /build/julia/julia-1.8.5/bin/../lib/julia/libopenblas64_.so
0x00007fffdf190130  0x00007fffdf4054b3  Yes         /build/julia/julia-1.8.5/bin/../lib/julia/libgfortran.so.5
0x00007fffdf129a40  0x00007fffdf154e1d  Yes (*)     /cvmfs/sft.cern.ch/lcg/releases/gcc/11.3.0-ad0f5/x86_64-centos8/lib64/libquadmath.so.0
0x00007ffdc7635650  0x00007ffdc7654e46  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libblastrampoline.so
0x00007ffdc746bcb0  0x00007ffdc75567e5  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libcholmod.so
0x00007fffe21f4160  0x00007fffe21fae61  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libamd.so.2
0x00007ffff7dfd0c0  0x00007ffff7e0161f  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libcolamd.so.2
0x00007fffe21ef080  0x00007fffe21ef73c  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libsuitesparseconfig.so.5
0x00007fffe21e2140  0x00007fffe21e9b64  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libccolamd.so.2
0x00007fffe21d4150  0x00007fffe21dc361  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libcamd.so.2
0x00007ffdc7409c40  0x00007ffdc7451015  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libmetis.so
0x00007ffdc6783c00  0x00007ffdc7274a70  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libopenblas.so.0
0x00007ffdc66bddd0  0x00007ffdc66e84f2  Yes (*)     /cvmfs/sft.cern.ch/lcg/releases/gcc/11.3.0-ad0f5/x86_64-centos8/lib64/libgomp.so.1
0x00007ffd46c7eec0  0x00007ffd46c93016  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libnghttp2.so.14
0x00007ffd469f7ce0  0x00007ffd46a557b6  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libcurl.so
0x00007ffd467ae3e0  0x00007ffd467da2e6  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libssh2.so.1
0x00007ffd46567fc0  0x00007ffd4658e2d6  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libmbedtls.so.14
0x00007ffd4633e4d0  0x00007ffd4634a546  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libmbedx509.so.1
0x00007ffd460bdbc0  0x00007ffd46117a56  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/julia/libmbedcrypto.so.7
0x00007ffd4508e8c0  0x00007ffd450a2581  Yes (*)     /build/julia/demo/depot/artifacts/32fa2e00ee8d44dabd72b80ece853bc295575d7f/lib/libcxxwrap_julia.so
0x00007ffd44da0ba0  0x00007ffd44f82d31  Yes (*)     /build/julia/demo/depot/artifacts/32fa2e00ee8d44dabd72b80ece853bc295575d7f/lib/libcxxwrap_julia_stl.so
0x00007ffd40722740  0x00007ffd4073d646  Yes         /build/julia/demo/depot/artifacts/fac7e6d8fc4c5775bf5118ab494120d2a0db4d64/lib/libexpat.so
0x00007ffd40501530  0x00007ffd40513bd6  Yes         /build/julia/demo/depot/artifacts/16154f990153825ec24b52aac11165df2084b9dc/lib/libgpg-error.so
0x00007ffd401e9d00  0x00007ffd402b45d6  Yes         /build/julia/demo/depot/artifacts/92111ef825c608ea220f8e679dd8d908d7ac5b83/lib/libgcrypt.so
0x00007ffd3ffdc550  0x00007ffd3ffdc716  Yes         /build/julia/demo/depot/artifacts/e63503984ff7722ba80209eddd5621acca0d2d5e/lib/libcharset.so
0x00007ffd3fce1780  0x00007ffd3fcf8ea6  Yes         /build/julia/demo/depot/artifacts/e63503984ff7722ba80209eddd5621acca0d2d5e/lib/libiconv.so
0x00007ffd3f9aaa90  0x00007ffd3fa81e06  Yes         /build/julia/demo/depot/artifacts/f792596249694cc12db3689d386d3a6c5d24e794/lib/libxml2.so
0x00007ffd3f75c250  0x00007ffd3f768526  Yes         /build/julia/demo/depot/artifacts/f3ec73d7bf2f4419ba0943e94f7738cf56050797/lib/libexslt.so
0x00007ffd44a16640  0x00007ffd44a3b98b  Yes         /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libxslt.so.1
0x00007ffd3f516c50  0x00007ffd3f53bb26  Yes         /build/julia/demo/depot/artifacts/f3ec73d7bf2f4419ba0943e94f7738cf56050797/lib/libxslt.so
0x00007ffd3f309e80  0x00007ffd3f30ab46  Yes         /build/julia/demo/depot/artifacts/4487a7356408c3a92924e56f9d3891724855282c/lib/libXau.so
0x00007ffd3f105300  0x00007ffd3f106c76  Yes         /build/julia/demo/depot/artifacts/51c48c945ae76d6c0102649044d9976d93b78125/lib/libXdmcp.so
0x00007ffd3eeda8e0  0x00007ffd3eee9bf6  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb.so
0x00007ffd3ecc9d00  0x00007ffd3ecca466  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-composite.so
0x00007ffd3eac39a0  0x00007ffd3eac3e96  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-damage.so
0x00007ffd3e8bdba0  0x00007ffd3e8be1c6  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-dpms.so
0x00007ffd3e6b67d0  0x00007ffd3e6b7586  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-dri2.so
0x00007ffd3e4af4c0  0x00007ffd3e4b0096  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-dri3.so
0x00007ffd3e28bc70  0x00007ffd3e292116  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-glx.so
0x00007ffd3e07bcf0  0x00007ffd3e07c476  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-present.so
0x00007ffd3de65a20  0x00007ffd3de69726  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-randr.so
0x00007ffd3dc588b0  0x00007ffd3dc595e6  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-record.so
0x00007ffd3da43ef0  0x00007ffd3da47e06  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-render.so
0x00007ffd3d8395d0  0x00007ffd3d839f46  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-res.so
0x00007ffd3d631e80  0x00007ffd3d632bb6  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-screensaver.so
--Type <RET> for more, q to quit, c to continue without paging-- 
0x00007ffd3d42afb0  0x00007ffd3d42b956  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-shape.so
0x00007ffd3d224d10  0x00007ffd3d225636  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-shm.so
0x00007ffd3d01c1d0  0x00007ffd3d01dc06  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-sync.so
0x00007ffd3ce147d0  0x00007ffd3ce152d6  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xf86dri.so
0x00007ffd3cc06ab0  0x00007ffd3cc086f6  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xfixes.so
0x00007ffd3c9fed60  0x00007ffd3c9ff326  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xinerama.so
0x00007ffd3c7cf0c0  0x00007ffd3c7d9056  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xinput.so
0x00007ffd3c59bb50  0x00007ffd3c5a6936  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xkb.so
0x00007ffd3c38c8f0  0x00007ffd3c38cda6  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xtest.so
0x00007ffd3c183740  0x00007ffd3c185326  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xv.so
0x00007ffd3bf7b4b0  0x00007ffd3bf7be66  Yes         /build/julia/demo/depot/artifacts/5ba11d7fb2ceb4ca812844eb4af886a212b47f65/lib/libxcb-xvmc.so
0x00007ffd3bc449d0  0x00007ffd3bcc62d6  Yes         /build/julia/demo/depot/artifacts/431a0e3706ffe717ab5d35c47bc38626c6169504/lib/libX11.so
0x00007ffd3ba26500  0x00007ffd3ba266a6  Yes         /build/julia/demo/depot/artifacts/431a0e3706ffe717ab5d35c47bc38626c6169504/lib/libX11-xcb.so
0x00007ffd3b812650  0x00007ffd3b81bba6  Yes         /build/julia/demo/depot/artifacts/fc6071b99b67da0ae4e49ebab70c369ce9a76c9e/lib/libXext.so
0x00007ffd3b5f9dc0  0x00007ffd3b606796  Yes         /build/julia/demo/depot/artifacts/cc3814d078996afbcf901d6b08e5d311a4ea6f81/lib/libICE.so
0x00007ffd3b3ece10  0x00007ffd3b3f0c86  Yes         /build/julia/demo/depot/artifacts/ea159a5ea26f6046e9ddd45feadf86d24d8e2ef2/lib/libSM.so
0x00007ffd3b18b4a0  0x00007ffd3b1c4f06  Yes         /build/julia/demo/depot/artifacts/b8c1420ae3ef9b861658831ba86284bc9df9f3a9/lib/libXt.so
0x00007ffd3af71350  0x00007ffd3af72136  Yes         /build/julia/demo/depot/artifacts/953af790fd525ae3268e65e80a8a99fc6fe5e3d2/lib/libXmuu.so
0x00007ffd3ad4aa20  0x00007ffd3ad57cb6  Yes         /build/julia/demo/depot/artifacts/953af790fd525ae3268e65e80a8a99fc6fe5e3d2/lib/libXmu.so
0x00007ffd3ab2f080  0x00007ffd3ab3d1e6  Yes (*)     /build/julia/demo/depot/artifacts/37dda4e57d9de95c99d1f8c6b3d8f4eca88c39a2/lib/libEGL.so
0x00007ffd3a8b64f0  0x00007ffd3a8b8d16  Yes (*)     /build/julia/demo/depot/artifacts/37dda4e57d9de95c99d1f8c6b3d8f4eca88c39a2/lib/libGLdispatch.so.0
0x00007ffd3a61cad0  0x00007ffd3a61f6e6  Yes (*)     /build/julia/demo/depot/artifacts/37dda4e57d9de95c99d1f8c6b3d8f4eca88c39a2/lib/libGL.so
0x00007ffd3a3aaef0  0x00007ffd3a3c65c6  Yes (*)     /build/julia/demo/depot/artifacts/37dda4e57d9de95c99d1f8c6b3d8f4eca88c39a2/lib/libGLX.so.0
0x00007ffd3a1a1500  0x00007ffd3a1a1bb6  Yes (*)     /build/julia/demo/depot/artifacts/37dda4e57d9de95c99d1f8c6b3d8f4eca88c39a2/lib/libGLESv1_CM.so
0x00007ffd39f937a0  0x00007ffd39f93e56  Yes (*)     /build/julia/demo/depot/artifacts/37dda4e57d9de95c99d1f8c6b3d8f4eca88c39a2/lib/libGLESv2.so
0x00007ffd39d70e00  0x00007ffd39d714b6  Yes (*)     /build/julia/demo/depot/artifacts/37dda4e57d9de95c99d1f8c6b3d8f4eca88c39a2/lib/libOpenGL.so
0x00007ffd398e17b0  0x00007ffd39a50de6  Yes (*)     /build/julia/demo/depot/artifacts/be4a424c0f4b5039931c0360a11944a642db412d/lib/libxerces-c.so
0x00007ffd39329870  0x00007ffd396062e1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4analysis.so
0x00007ffd3913d5e0  0x00007ffd3918cfa9  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4intercoms.so
0x00007ffd449f03a0  0x00007ffd44a01358  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4zlib.so
0x00007ffd390c7770  0x00007ffd39113087  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4global.so
0x00007ffd3901dd40  0x00007ffd39073df1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4clhep.so
0x00007ffd38fd6c80  0x00007ffd38fec586  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4ptl.so.2
0x00007ffd38eb1170  0x00007ffd38f70a16  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib/libCLHEP-2.4.6.0.so
0x00007ffd38da30b0  0x00007ffd38e17d01  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4digits_hits.so
0x00007ffd38d64770  0x00007ffd38d70e81  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4track.so
0x00007ffd389c5500  0x00007ffd38cce855  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4geometry.so
0x00007ffd388a5340  0x00007ffd388d2e94  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4graphics_reps.so
0x00007ffd387b2b70  0x00007ffd388411ed  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4materials.so
0x00007ffd3868f320  0x00007ffd38735535  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4particles.so
0x00007ffd3821a070  0x00007ffd3861032c  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libvecgeom.so
0x00007ffd381500b0  0x00007ffd38171e21  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4error_propagation.so
0x00007ffd3808e880  0x00007ffd38115b45  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4run.so
0x00007ffd37feaf30  0x00007ffd3803c473  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4event.so
0x00007ffd37f84ea0  0x00007ffd37fc1157  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4tracking.so
0x00007ffd36822900  0x00007ffd374cf9a7  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4processes.so
0x00007ffd364481e0  0x00007ffd364681da  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4expat.so
0x00007ffd363d3f30  0x00007ffd3641e901  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4event.so
0x00007ffd450727b0  0x00007ffd4507bad1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4FR.so
0x00007ffd362991a0  0x00007ffd363731d5  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4vis_management.so
0x00007ffd36193940  0x00007ffd3621b0f2  Yes (*)     /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Mon/x86_64-centos8-gcc11-opt/lib64/libG4modeling.so
0x00007ffd35e967b0  0x00007ffd36085671  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4geometry.so
0x00007ffd35d5c030  0x00007ffd35dbbf51  Yes         /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4global.so
0x00007ffd35ce7380  0x00007ffd35d12b81  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4graphics_reps.so
0x00007ffd35c6d5a0  0x00007ffd35cb2911  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4intercoms.so
0x00007ffd35c34b20  0x00007ffd35c4e311  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4interfaces.so
0x00007ffd35b50d20  0x00007ffd35bd29b1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4materials.so
0x00007ffd35af80a0  0x00007ffd35b1e551  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4GMocren.so
0x00007ffd35a1bba0  0x00007ffd35a91fa1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4modeling.so
0x00007ffd359b27f0  0x00007ffd359bb591  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4parmodels.so
0x00007ffd3588d360  0x00007ffd3592bc51  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4particles.so
0x00007ffd3572ae10  0x00007ffd35800361  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4persistency.so
0x00007ffd355be2d0  0x00007ffd3566c001  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4physicslists.so
0x00007ffd33d23620  0x00007ffd3492a8a1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4processes.so
0x00007ffd3380ccc0  0x00007ffd338221e1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4ptl.so
0x00007ffd337da180  0x00007ffd337e9821  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4RayTracer.so
0x00007ffd449e3480  0x00007ffd449e6f21  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4readout.so
--Type <RET> for more, q to quit, c to continue without paging--
0x00007ffd337089c0  0x00007ffd33781731  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4run.so
0x00007ffd33510c50  0x00007ffd3363f1b1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4ToolsSG.so
0x00007ffd33479780  0x00007ffd33485f91  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4track.so
0x00007ffd33423ed0  0x00007ffd33457711  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4tracking.so
0x00007ffd333fe750  0x00007ffd33406a71  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4Tree.so
0x00007ffd333e76d0  0x00007ffd333ee821  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4VRML.so
0x00007ffd333c9a70  0x00007ffd333d63b1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4visHepRep.so
0x00007ffd333a53a0  0x00007ffd333b65a1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4zlib.so
0x00007ffd33276460  0x00007ffd333324b1  Yes (*)     /build/julia/demo/depot/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4vis_management.so
0x00007ffd32a89bc0  0x00007ffd32f52351  Yes (*)     /build/julia/demo/depot/artifacts/94e2be9aeb96002d2b0c84100d9346dceafb5382/lib/libGeant4Wrap.so
(*): Shared library is missing debugging information.

Notice that the library libG4graphics_reps is loaded from the artifacts and the other installation.

oschulz commented 1 year ago

You are right it should not happen. On which OS are you?

I'm on an Ubuntu 22.04 Apptainer/Singularity container running on an Ubuntu 20.04 host.

oschulz commented 1 year ago

@giordano No, LD_LIBRARY_PATH will always have priority because. If that's a problem, you have to prune the environment variable.

But I'm quite sure that with HDF5.jl and others the artifact libs are used, not what's on LD_LIBRARY_PATH.

giordano commented 1 year ago

You don't need gdb, you can see what libraries had been loaded in-process with

using Libdl
dllist()

dllist() is a vector of strings of the paths of the loaded libraries, so you you should be able to filter it as you want. If you want to know why a certain library had been loaded you have to start Julia with

LD_DEBUG=all julia

Note that this will print a lot of information to stderr, you may want to redirect it to file to analyse it afterwards.

giordano commented 1 year ago

But I'm quite sure that with HDF5.jl and others the artifact libs are used, not what's on LD_LIBRARY_PATH.

As I said above, you have to use LD_DEBUG to follow the loading process. I highly doubt hdf5 is any special, perhaps whatever you have in LD_LIBRARY_PATH is simply not acceptable for what the Julia process tries to dlopen.

peremato commented 1 year ago

The truth is that if your local installation was built in a compatible manner with the way Geant4_jll is built then you would not have noticed.

oschulz commented 1 year ago

As I said above, you have to use LD_DEBUG to follow the loading process

I just did, it seems to go for /user/.julia/artifacts/980adb65c877c384f59bf7b2b800699e22a38815/lib/libhdf5.so directly, even though /opt/hdf5/lib/libhdf5.so is definitely on LD_LIBRARY_PATH.

The LD_DEBUG log does show search path=...:/opt/geant4/lib:/opt/clhep/lib:/opt/hdf5/lib:..., but it never even mentions /opt/hdf5/lib/libhdf5.so, it only refers to /user/.julia/artifacts/980adb65c877c384f59bf7b2b800699e22a38815/lib/libhdf5.so. So it doesn't seem that /opt/hdf5/lib/libhdf5.so is being rejected as unsuitable, it seems to be ignored completely.

Artifacts also normally ignore system-wide installations of libs (e.g. in "/usr/lib..:") by default, right?

giordano commented 1 year ago

That may be because hdf5 is dlopened directly with its absolute path, other libraries are pulled in as required dependencies. Check the log again, see what is dlopened exactly.

oschulz commented 1 year ago

Ok, I looked a bit deeper into this - it seems that the Pkg artifacts system does not prefer LD_LIBRARY_PATH - which is good, since (esp. in the HEP world) users often (have to) live in pre-configured computing environments that they have little or no control over, esp. in larger collaborations - yet we to want Project.toml/Manifest.toml combinations to result in reproducible environments as far as Julia is concerned.

And Geant4_jll itself does indeed ignore LD_LIBRARY_PATH, LD_DEBUG shows that it loads /user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4analysis.so directly, it ignores /opt/geant4/lib/libG4analysis.so completely.

The problem originates not from Pkg/artifacts, but from ld resolving the dependencies of libG4analysis.so using LD_LIBRARY_PATH some of it's deps:

$ ldd /user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4analysis.so | grep G4
    libG4intercoms.so => /opt/geant4/lib/libG4intercoms.so (0x00007fc1c40f3000)
    libG4zlib.so => /user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4zlib.so (0x00007fc1c40d5000)
    libG4global.so => /opt/geant4/lib/libG4global.so (0x00007fc1c406d000)
    libG4clhep.so => /user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4clhep.so (0x00007fc1c3954000)
    libG4ptl.so.2 => /user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4ptl.so.2 (0x00007fc1c403b000)

whereas with HDF5:

$ ldd /user/.julia/artifacts/980adb65c877c384f59bf7b2b800699e22a38815/lib/libhdf5_hl.so | grep hdf5
    libhdf5.so.200 => /user/.julia/artifacts/980adb65c877c384f59bf7b2b800699e22a38815/lib/./libhdf5.so.200 (0x00007f3f2e400000)

I think the reason is that the HDF5 libs are built with RPATH set to $ORIGIN:

$ readelf -d /user/.julia/artifacts/980adb65c877c384f59bf7b2b800699e22a38815/lib/libhdf5_hl.so | grep RPATH
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN/.]

and (at least some of?) the Geant4 libs aren't:

$ readelf -d /user/.julia/artifacts/a85cd03208e614f4dc7cb6f2b625ff5dd815b621/lib/libG4analysis.so | grep RPATH
[empty]

It would obviously be very beneficial to ensure the G4 artifacts are self-contained and relocateable (via $ORIGIN in RPATH). Cmake supports this, but I'm not sure of the G4 build system does anything weird.

giordano commented 1 year ago

In general tweaking rpath won't help, we want libraries to be relocatable, we can't possibly know where dependencies from other packages will be.

There are some long-term plans to improve things (better tracking of dependencies), for the time being not having LD_LIBRARY_PATH mess things up is your best bet.

oschulz commented 1 year ago

Ah, thanks @giordano , you're right, of course - rpath won't work across artifacts. Still, it'll help to some extent, so setting it can't hurt, right? I'll see if G4 will build with it.

oschulz commented 1 year ago

Looks like -DCMAKE_BUILD_RPATH_USE_ORIGIN=TRUE has no effect on CLHEP and Geant4 (still no RPATH) ...

I'm closing this - thanks for your explanations @giordano, I'll see if we can get rid of LD_LIBRARY_PATH in our environment somehow.