Custom build, crash when running the ATLAS example

I tried a “display” running on Ubuntu 14.04 / x86_64 (KDE) and Ubuntu 18.04 / x86_64 (Gnome).
I tried “ssh -X” and “ssh -Y” to a CentOS 7 / x86_64 machine where I tried ROOT 6.18.00 and 6.16.00 from “/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/*/x86_64-centos7-gcc48-opt”.
Executing “root ${ROOTSYS}/tutorials/eve/geom_atlas.C” works fine in all cases.

Indeed, it works fine the provided ROOT, but we have to build it ourselves for other unrelated reasons.

Our build, compile successfully, works fine, but it crash when trying to display graphics.

I don’t have neither the expertise, nor the experience to dig this graphic problem myself, hence I am asking for help. Is there anything we can do to dig this issue? Is there anybody that experience the same kind of problem?

Am I using some wrong/unsupported dependency? How do I know? Where should I go looking?

You should find out if it’s a bug in ROOT that was introduced since 6.14 or if it’s a build / linking problem.
Could you follow @amadio’s suggestion above to try (in this case compile) root 6.14. If it works, we might need to search for a bug in the graphics part. If it doesn’t, we might have to look into configuration problems.

So eventually I was able to set the graphic forwarding in the build server.

So from now on, I can test everything in the server where I actually build ROOT.

I must report the same error, with very similar stacktrace in both version we are considering, so 6.14 and 6.18.

So to recap the situation:

We have a custom build of ROOT and we are trying to migrate to from ROOT 6.14 to 6.18.
Using the graphic seems broken in our two builds, while it seems to work correctly in the provide LCG build.
We are able to run the graphic on the same server where we build ROOT.

Overall we get the same error, that looks like:

#7  0x00007ff2c72ebfa0 in __memcpy_ssse3 () from /lib64/libc.so.6
#8  0x00007ff2acf8ebdb in llvm::WritableMemoryBuffer::getNewUninitMemBuffer(unsigned long, llvm::Twine const&) () from /usr/lib64/libLLVM-6.0-rhel.so
#9  0x00007ff2acf8ecaf in getMemBufferCopyImpl(llvm::StringRef, llvm::Twine const&) () from /usr/lib64/libLLVM-6.0-rhel.so
#10 0x00007ff2acf8ed30 in llvm::MemoryBuffer::getMemBufferCopy(llvm::StringRef, llvm::Twine const&) () from /usr/lib64/libLLVM-6.0-rhel.so
#11 0x00007ff2adff62f5 in (anonymous namespace)::createELFDebugObject(llvm::object::ObjectFile const&, (anonymous namespace)::LoadedELFObjectInfo const&) () from /usr/lib64/libLLVM-6.0-rhel.so
#12 0x00007ff2adff6db2 in (anonymous namespace)::LoadedELFObjectInfo::getObjectForDebug(llvm::object::ObjectFile const&) const () from /usr/lib64/libLLVM-6.0-rhel.so
#13 0x00007ff2adfa5495 in (anonymous namespace)::GDBJITRegistrationListener::NotifyObjectEmitted(llvm::object::ObjectFile const&, llvm::RuntimeDyld::LoadedObjectInfo const&) () from /usr/lib64/libLLVM-6.0-rhel.so
#14 0x00007ff2adfc1f43 in llvm::MCJIT::NotifyObjectEmitted(llvm::object::ObjectFile const&, llvm::RuntimeDyld::LoadedObjectInfo const&) () from /usr/lib64/libLLVM-6.0-rhel.so
#15 0x00007ff2adfc4e07 in llvm::MCJIT::generateCodeForModule(llvm::Module*) () from /usr/lib64/libLLVM-6.0-rhel.so
#16 0x00007ff2adfc1560 in llvm::MCJIT::finalizeObject() () from /usr/lib64/libLLVM-6.0-rhel.so
#17 0x00007ff2adfa2f42 in LLVMGetPointerToGlobal () from /usr/lib64/libLLVM-6.0-rhel.so
#18 0x00007ff2b029f3f6 in llvmpipe_update_fs () from /usr/lib64/dri/swrast_dri.so
#19 0x00007ff2b02972d0 in llvmpipe_update_derived () from /usr/lib64/dri/swrast_dri.so
#20 0x00007ff2b02827a6 in llvmpipe_draw_vbo () from /usr/lib64/dri/swrast_dri.so
#21 0x00007ff2afd2a6df in st_draw_vbo () from /usr/lib64/dri/swrast_dri.so
#22 0x00007ff2afcef22b in vbo_exec_vtx_flush () from /usr/lib64/dri/swrast_dri.so
#23 0x00007ff2afceb987 in vbo_exec_FlushVertices () from /usr/lib64/dri/swrast_dri.so
#24 0x00007ff2afb9061d in _mesa_EndList () from /usr/lib64/dri/swrast_dri.so
#25 0x00007ff2ba558760 in TGLLogicalShape::Draw (this=0x9918030, rnrCtx=...) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLLogicalShape.cxx:417
#26 0x00007ff2ba589524 in TGLPhysicalShape::Draw (this=0x9959e50, rnrCtx=...) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLPhysicalShape.cxx:409
#27 0x00007ff2ba5a1e23 in TGLScene::RenderElements (this=<optimized out>, rnrCtx=..., elVec=..., check_timeout=<optimized out>, clipPlanes=<optimized out>) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLScene.cxx:919
#28 0x00007ff2ba5a252d in TGLScene::RenderAllPasses (this=0x3eb8ed0, rnrCtx=..., elVec=..., check_timeout=true) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLScene.cxx:818
#29 0x00007ff2ba5c855e in TGLViewerBase::SubRenderScenes (this=this
entry=0x3ec8080, render_foo=&virtual table offset 152) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLViewerBase.cxx:411
#30 0x00007ff2ba5c888f in TGLViewerBase::RenderOpaque (rnr_selected=true, rnr_non_selected=true, this=0x3ec8080) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLViewerBase.cxx:492
#31 TGLViewerBase::Render (this=this
entry=0x3ec8080) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLViewerBase.cxx:425
#32 0x00007ff2ba5cd5d2 in TGLViewer::Render (this=0x3ec8070) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLViewer.cxx:521
#33 TGLViewer::DoDrawMono (this=this
entry=0x3ec8070, swap_buffers=swap_buffers
entry=true) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLViewer.cxx:638
#34 0x00007ff2ba5cdddf in TGLViewer::DoDraw (this=this
entry=0x3ec8070, swap_buffers=swap_buffers
entry=true) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLViewer.cxx:600
#35 0x00007ff2ba5ce2b1 in TGLViewer::RequestDraw (this=this
entry=0x3ec8070, LODInput=LODInput
entry=100) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/gl/src/TGLViewer.cxx:464
#36 0x00007ff2bb6e5222 in TEveViewerList::RepaintAllViewers (this=0x6634c30, resetCameras=<optimized out>, dropLogicals=<optimized out>) at /root/ship-2020/sw/SOURCES/ROOT/v6-18-00_FAIRSHIP/v6-18-00/graf3d/eve/src/TEveViewer.cxx:466

Any ideas?

Does the server support ssse3? The error seems to happen in __memcpy_ssse3 from your stack trace.

Do you build ROOT with builtin LLVM? ROOT needs LLVM 5.0.x, so this might be due to mixing LLVM versions (from mesa and ROOT). If this is the case, building your ROOT without support for OpenGL should fix the problem.

Yes it does! :frowning:

So I build with this:

cmake /root/ship-log-keep/sw/SOURCES/ROOT/v6-14-00_FAIRSHIP/v6-14-00
-DCMAKE_BUILD_TYPE=RELEASE 
-DCMAKE_INSTALL_PREFIX=/root/ship-log-keep/sw/INSTALLROOT/d528bc31d7df1df5056604946bf2645d5f48d49a/slc7_x86-64/ROOT/v6-14-00_FAIRSHIP-1 
-DXROOTD_ROOT_DIR=/root/ship-log-keep/sw/slc7_x86-64/XRootD/v4.8.3-1 
-Dcxx11=ON 
-Dfreetype=ON 
-Dbuiltin_freetype=OFF 
-Dpcre=OFF 
-Dbuiltin_pcre=ON 
-Drpath=ON 
-DCMAKE_CXX_COMPILER=c++ 
-DCMAKE_C_COMPILER=cc 
-DCMAKE_LINKER=c++ 
-DCMAKE_EXE_LINKER_FLAGS=-L/root/ship-log-keep/sw/slc7_x86-64/GCC-Toolchain/v6.2.0-alice1-1/lib64 
-DOPENSSL_ROOT= 
-DLIBXML2_ROOT= 
-DGSL_DIR=/root/ship-log-keep/sw/slc7_x86-64/GSL/v1.16_FAIRSHIP-1 -DPYTHIA8_DIR=/root/ship-log-keep/sw/slc7_x86-64/pythia/v8230-ship-1 
-DPYTHIA6_LIBRARY=/root/ship-log-keep/sw/slc7_x86-64/pythia6/v6.4.28-ship1-1/lib/libpythia6.so 
-Dpythia6=ON 
-Dpgsql=OFF 
-Dminuit2=ON 
-Dgdml=ON 
-Droofit=ON 
-Dhttp=ON 
-Dsoversion=ON 
-Dshadowpw=OFF 
-Dvdt=ON 
-Dbuiltin_vdt=ON 
-Dvmc=ON 
'-DCMAKE_PREFIX_PATH=/root/ship-log-keep/sw/slc7_x86-64/FreeType/v2.6-1;;/root/ship-log-keep/sw/slc7_x86-64/GSL/v1.16_FAIRSHIP-1;;/root/ship-log-keep/sw/slc7_x86-64/Python/v2.7.10-1;/root/ship-log-keep/sw/slc7_x86-64/Python-modules/1.0-1'

And then in the logs I see:

-- Enabled support for:  
asimage astiff builtin_afterimage 
builtin_davix builtin_ftgl 
builtin_gl2ps builtin_glew 
builtin_llvm  # <=== here builtin_llvm 
builtin_clang builtin_lz4 builtin_pcre 
builtin_tbb builtin_vdt builtin_xxhash 
cling cxx11 davix exceptions explicitlink 
gdml genvector http imt mathmore minuit2 
opengl # <=== here opengl 
pch pythia6 pythia8 python roofit 
rpath shared soversion ssl thread 
tmva tmva-cpu vdt x11 xft xml xrootd

So I can try passing -Dopengl=OFF to CMake.

Let me see!

You may also want to take a look at the differences in root-config --features for the working and non-working configurations of ROOT.

So without OpenGL I got other error, maybe expected?

[ROOT/latest-fairship] ~/ship $> root /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C
   ------------------------------------------------------------
  | Welcome to ROOT 6.18/00                  https://root.cern |
  |                               (c) 1995-2019, The ROOT Team |
  | Built for linuxx8664gcc on Aug 19 2019, 13:41:00           |
  | From tag v6-18-00, 25 June 2019                            |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
   ------------------------------------------------------------

root [0] 
Processing /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C...
In file included from input_line_8:1:
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:12:4: error: use of undeclared identifier 'TEveManager'
   TEveManager::Create();
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:15:4: error: use of undeclared identifier 'gGeoManager'
   gGeoManager = gEve->GetGeometry("http://root.cern.ch/files/atlas.root");
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:15:18: error: use of undeclared identifier 'gEve'
   gGeoManager = gEve->GetGeometry("http://root.cern.ch/files/atlas.root");
                 ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:16:4: error: use of undeclared identifier 'gGeoManager'
   gGeoManager->DefaultColors();
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:18:17: error: use of undeclared identifier 'gGeoManager'
   auto node1 = gGeoManager->GetTopVolume()->FindNode("INNE_1");
                ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:19:4: error: unknown type name 'TEveGeoTopNode'
   TEveGeoTopNode* inn = new TEveGeoTopNode(gGeoManager, node1);
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:19:30: error: unknown type name 'TEveGeoTopNode'
   TEveGeoTopNode* inn = new TEveGeoTopNode(gGeoManager, node1);
                             ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:20:4: error: use of undeclared identifier 'gEve'
   gEve->AddGlobalElement(inn);
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:22:17: error: use of undeclared identifier 'gGeoManager'
   auto node2 = gGeoManager->GetTopVolume()->FindNode("CENT_1");
                ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:23:4: error: unknown type name 'TEveGeoTopNode'
   TEveGeoTopNode* cnt = new TEveGeoTopNode(gGeoManager, node2);
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:23:30: error: unknown type name 'TEveGeoTopNode'
   TEveGeoTopNode* cnt = new TEveGeoTopNode(gGeoManager, node2);
                             ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:24:4: error: use of undeclared identifier 'gEve'
   gEve->AddGlobalElement(cnt);
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:26:17: error: use of undeclared identifier 'gGeoManager'
   auto node3 = gGeoManager->GetTopVolume()->FindNode("OUTE_1");
                ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:27:4: error: unknown type name 'TEveGeoTopNode'
   TEveGeoTopNode* out = new TEveGeoTopNode(gGeoManager, node3);
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:27:30: error: unknown type name 'TEveGeoTopNode'
   TEveGeoTopNode* out = new TEveGeoTopNode(gGeoManager, node3);
                             ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:28:4: error: use of undeclared identifier 'gEve'
   gEve->AddGlobalElement(out);
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:30:4: error: use of undeclared identifier 'gEve'
   gEve->FullRedraw3D(kTRUE);
   ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:34:13: error: use of undeclared identifier 'gEve'
   auto v = gEve->GetDefaultGLViewer();
            ^
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C:35:33: error: use of undeclared identifier 'TGLClip'
   v->GetClipSet()->SetClipType(TGLClip::EType(1));
                                ^

Am I missing something?

I really like the idea of see the differences between the two root-config, unfortunately nothing obvious jumped to my eyes.

Here the working/standard one:

-bash-4.2$ root-config --features
cxx11 asimage astiff builtin_clang builtin_llvm cling davix dcache 
exceptions explicitlink fftw3 fitsio fortran gdml gfal gnuinstall 
gsl_shared gviz http mathmore memstat minuit2 mysql odbc 
opengl pch pgsql pythia8 python r roofit shadowpw shared soversion 
sqlite ssl thread tmva tmva-pymva tmva-rmva unuran vmc x11 xml xrootd

Below our broken one:

[ROOT/latest-fairship] ~/ship $> root-config --features
cxx11 asimage astiff builtin_afterimage builtin_clang builtin_davix 
builtin_ftgl builtin_glew builtin_llvm builtin_lz4 builtin_pcre builtin_tbb 
builtin_vdt builtin_xxhash clad cling davix exceptions explicitlink 
gdml http imt mathmore minuit2 pch pythia6 pythia8 python roofit 
rpath shared soversion ssl thread tmva tmva-cpu tmva-pymva vmc 
vdt x11 xml xrootd

They are so big that is hard to tell the differences between the two, so I removed from both of them the common elements, and we obtain:

Working:

$ root-config --features 
dcache 
fftw3 
fitsio
fortran
gfal 
gnuinstall 
gsl_shared 
gviz 
memstat
mysql 
odbc
opengl
pgsql
r
shadowpw
sqlite
tmva-rmva
unuran 

Broken:

[ROOT/latest-fairship] ~/ship $> root-config --features
builtin_afterimage 
builtin_davix
builtin_ftgl
builtin_glew 
builtin_lz4
builtin_pcre
builtin_tbb 
builtin_vdt
builtin_xxhash 
clad   
imt    
pythia6 
rpath     
tmva-cpu 
vdt 

Is there anything obvious staring at me that I don’t see?

Yes, it seems the tutorial needs ROOT with OpenGL enabled. I would suspect of one of the builtins, or one of the imt or rpath options. Try without rpath, then without imt, then with external asimage (with OpenGL disabled), external tbb, and external davix. If none of these make the problem go away, then I don’t have an idea as for what could be the cause.

So with the help of @amadio we re-build ROOT removing builtin_ftgl and builting_glew.

Now our ROOT does not start the graphics anymore, but it produce the following output.

$> root /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C
   ------------------------------------------------------------
  | Welcome to ROOT 6.18/00                  https://root.cern |
  |                               (c) 1995-2019, The ROOT Team |
  | Built for linuxx8664gcc on Aug 21 2019, 14:32:00           |
  | From tag v6-18-00, 25 June 2019                            |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
   ------------------------------------------------------------

root [0] 
Processing /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C...
Warning in <TClassTable::Add>: class TGDMLMatrix already in TClassTable
Warning in <TClassTable::Add>: class TGeoShape already in TClassTable
Warning in <TClassTable::Add>: class TGeoBBox already in TClassTable
Warning in <TClassTable::Add>: class TGeoArb8 already in TClassTable
Warning in <TClassTable::Add>: class TGeoTrap already in TClassTable
Warning in <TClassTable::Add>: class TGeoGtra already in TClassTable
Warning in <TClassTable::Add>: class TGeoAtt already in TClassTable
Warning in <TClassTable::Add>: class TGeoBoolNode already in TClassTable
Warning in <TClassTable::Add>: class TGeoUnion already in TClassTable
Warning in <TClassTable::Add>: class TGeoIntersection already in TClassTable
Warning in <TClassTable::Add>: class TGeoSubtraction already in TClassTable
Warning in <TClassTable::Add>: class TGeoMatrix already in TClassTable
Warning in <TClassTable::Add>: class TGeoTranslation already in TClassTable
Warning in <TClassTable::Add>: class TGeoRotation already in TClassTable
Warning in <TClassTable::Add>: class TGeoScale already in TClassTable
Warning in <TClassTable::Add>: class TGeoCombiTrans already in TClassTable
Warning in <TClassTable::Add>: class TGeoGenTrans already in TClassTable
Warning in <TClassTable::Add>: class TGeoIdentity already in TClassTable
Warning in <TClassTable::Add>: class TGeoHMatrix already in TClassTable
Warning in <TClassTable::Add>: class TGeoBranchArray already in TClassTable
Warning in <TClassTable::Add>: class TGeoBuilder already in TClassTable
Warning in <TClassTable::Add>: class TGeoElement already in TClassTable
Warning in <TClassTable::Add>: class TGeoIsotope already in TClassTable
Warning in <TClassTable::Add>: class TGeoElementRN already in TClassTable
Warning in <TClassTable::Add>: class TGeoDecayChannel already in TClassTable
Warning in <TClassTable::Add>: class TGeoBatemanSol already in TClassTable
Warning in <TClassTable::Add>: class TGeoElemIter already in TClassTable
Warning in <TClassTable::Add>: class TGeoElementTable already in TClassTable
Warning in <TClassTable::Add>: class TGeoMaterial already in TClassTable
Warning in <TClassTable::Add>: class TGeoMixture already in TClassTable
Warning in <TClassTable::Add>: class TGeoMedium already in TClassTable
Warning in <TClassTable::Add>: class TGeoVolume already in TClassTable
Warning in <TClassTable::Add>: class TGeoVolumeMulti already in TClassTable
Warning in <TClassTable::Add>: class TGeoVolumeAssembly already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternFinder already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternX already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternY already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternZ already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternParaX already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternParaY already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternParaZ already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternTrapZ already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternCylR already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternCylPhi already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternSphR already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternSphTheta already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternSphPhi already in TClassTable
Warning in <TClassTable::Add>: class TGeoPatternHoneycomb already in TClassTable
Warning in <TClassTable::Add>: class TGeoNode already in TClassTable
Warning in <TClassTable::Add>: class TGeoNodeMatrix already in TClassTable
Warning in <TClassTable::Add>: class TGeoNodeOffset already in TClassTable
Warning in <TClassTable::Add>: class TGeoIteratorPlugin already in TClassTable
Warning in <TClassTable::Add>: class TGeoIterator already in TClassTable
Warning in <TClassTable::Add>: class TGeoStateInfo already in TClassTable
Warning in <TClassTable::Add>: class TGeoCacheState already in TClassTable
Warning in <TClassTable::Add>: class TGeoNodeCache already in TClassTable
Warning in <TClassTable::Add>: class TGeoCompositeShape already in TClassTable
Warning in <TClassTable::Add>: class TGeoCone already in TClassTable
Warning in <TClassTable::Add>: class TGeoConeSeg already in TClassTable
Warning in <TClassTable::Add>: class TGeoTube already in TClassTable
Warning in <TClassTable::Add>: class TGeoTubeSeg already in TClassTable
Warning in <TClassTable::Add>: class TGeoCtub already in TClassTable
Warning in <TClassTable::Add>: class TGeoEltu already in TClassTable
Warning in <TClassTable::Add>: class TGeoExtension already in TClassTable
Warning in <TClassTable::Add>: class TGeoRCExtension already in TClassTable
Warning in <TClassTable::Add>: class TVirtualMagField already in TClassTable
Warning in <TClassTable::Add>: class TGeoUniformMagField already in TClassTable
Warning in <TClassTable::Add>: class TGeoGlobalMagField already in TClassTable
Warning in <TClassTable::Add>: class TGeoHalfSpace already in TClassTable
Warning in <TClassTable::Add>: class TGeoHelix already in TClassTable
Warning in <TClassTable::Add>: class TGeoHype already in TClassTable
Warning in <TClassTable::Add>: class TGeoNavigator already in TClassTable
Warning in <TClassTable::Add>: class TGeoNavigatorArray already in TClassTable
Warning in <TClassTable::Add>: class TGeoManager already in TClassTable
Warning in <TClassTable::Add>: class TGeoOpticalSurface already in TClassTable
Warning in <TClassTable::Add>: class TGeoSkinSurface already in TClassTable
Warning in <TClassTable::Add>: class TGeoBorderSurface already in TClassTable
Warning in <TClassTable::Add>: class TGeoPara already in TClassTable
Warning in <TClassTable::Add>: class TGeoParaboloid already in TClassTable
Warning in <TClassTable::Add>: class TGeoParallelWorld already in TClassTable
Warning in <TClassTable::Add>: class TGeoPcon already in TClassTable
Warning in <TClassTable::Add>: class TGeoPgon already in TClassTable
Warning in <TClassTable::Add>: class TGeoPhysicalNode already in TClassTable
Warning in <TClassTable::Add>: class TGeoPNEntry already in TClassTable
Warning in <TClassTable::Add>: class TGeoPolygon already in TClassTable
Warning in <TClassTable::Add>: class TGeoRegionCut already in TClassTable
Warning in <TClassTable::Add>: class TGeoRegion already in TClassTable
Warning in <TClassTable::Add>: class TGeoScaledShape already in TClassTable
Warning in <TClassTable::Add>: class TGeoShapeAssembly already in TClassTable
Warning in <TClassTable::Add>: class TGeoSphere already in TClassTable
Warning in <TClassTable::Add>: class TGeoTorus already in TClassTable
Warning in <TClassTable::Add>: class TGeoTrd1 already in TClassTable
Warning in <TClassTable::Add>: class TGeoTrd2 already in TClassTable
Warning in <TClassTable::Add>: class TGeoVoxelFinder already in TClassTable
Warning in <TClassTable::Add>: class TGeoXtru already in TClassTable
Warning in <TClassTable::Add>: class TVirtualGeoConverter already in TClassTable
Warning in <TClassTable::Add>: class TVirtualGeoPainter already in TClassTable
Warning in <TClassTable::Add>: class TVirtualGeoTrack already in TClassTable
In file included from libGeom dictionary payload:38:
/root/ship-log-keep/sw/INSTALLROOT/ec2d33d049cd3a6a0f28c818bc25d2aada569e5a/slc7_x86-64/ROOT/v6-18-00_FAIRSHIP-2/include/TGeoRCPtr.h:62:7: error: redefinition of 'TGeoRCPtr'
class TGeoRCPtr
      ^
/root/ship-log-keep/sw/INSTALLROOT/ec2d33d049cd3a6a0f28c818bc25d2aada569e5a/slc7_x86-64/ROOT/v6-18-00_FAIRSHIP-2/include/TGeoRCPtr.h:62:7: note: previous definition is here
class TGeoRCPtr
      ^
Error in <TInterpreter::AutoParse>: Error parsing payload code for class gGeoManager with content:

#line 1 "libGeom dictionary payload"


#define _BACKWARD_BACKWARD_WARNING_H
// Inline headers
#include "TGDMLMatrix.h"
#include "TGeoArb8.h"
#include "TGeoAtt.h"
#include "TGeoBBox.h"
#include "TGeoBoolNode.h"
#include "TGeoBranchArray.h"
#include "TGeoBuilder.h"
#include "TGeoCache.h"
#include "TGeoCompositeShape.h"
#include "TGeoCone.h"
#include "TGeoElement.h"
#include "TGeoEltu.h"
#include "TGeoExtension.h"
#include "TGeoGlobalMagField.h"
#include "TGeoHalfSpace.h"
#include "TGeoHelix.h"
#include "TGeoHype.h"
#include "TGeoManager.h"
#include "TGeoMaterial.h"
#include "TGeoMatrix.h"
#include "TGeoMedium.h"
#include "TGeoNavigator.h"
#include "TGeoNode.h"
#include "TGeoOpticalSurface.h"
#include "TGeoPara.h"
#include "TGeoParaboloid.h"
#include "TGeoParallelWorld.h"
#include "TGeoPatternFinder.h"
#include "TGeoPcon.h"
#include "TGeoPgon.h"
#include "TGeoPhysicalConstants.h"
#include "TGeoPhysicalNode.h"
#include "TGeoPolygon.h"
#include "TGeoRCPtr.h"
#include "TGeoRegion.h"
#include "TGeoScaledShape.h"
#include "TGeoShape.h"
#include "TGeoShapeAssembly.h"
#include "TGeoSphere.h"
#include "TGeoStateInfo.h"
#include "TGeoSystemOfUnits.h"
#include "TGeoTorus.h"
#include "TGeoTrd1.h"
#include "TGeoTrd2.h"
#include "TGeoTube.h"
#include "TGeoUniformMagField.h"
#include "TGeoVolume.h"
#include "TGeoVoxelFinder.h"
#include "TGeoXtru.h"
#include "TVirtualGeoConverter.h"
#include "TVirtualGeoPainter.h"
#include "TVirtualGeoTrack.h"
#include "TVirtualMagField.h"

#undef  _BACKWARD_BACKWARD_WARNING_H

Any ideas?

[ROOT/latest-fairship] ~/ship-log-keep $> root-config --features
cxx11 asimage astiff builtin_afterimage builtin_clang builtin_davix 
builtin_llvm builtin_lz4 builtin_tbb builtin_vdt builtin_xxhash clad 
cling davix exceptions explicitlink gdml http imt mathmore minuit2 
opengl pch pythia6 pythia8 python roofit rpath shared soversion 
ssl thread tmva tmva-cpu tmva-pymva vmc vdt x11 xml xrootd

That happens if you have multiple ROOTs in your $LD_LIBRARY_PATH. source thisroot.sh clean that up, but you might have installed ROOT, or set LD_LIBRARY_PATH manually?

Did you check whether builtin vs non-builtin glew causes this? You will need opengl for this tutorial to work, so can you make sure it’s enabled, please?

@matevz as this looks like a GL issue: ideas?

@Axel At the moment my LD_LIBRARY_PATH looks likes:

$ printenv LD_LIBRARY_PATH
/root/ship-log-keep/sw/slc7_x86-64/ROOT/v6-18-00_FAIRSHIP-3/lib:
/root/ship-log-keep/sw/slc7_x86-64/pythia6/v6.4.28-ship1-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/pythia/v8230-ship-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/HepMC/v2.06.09_FAIRSHIP-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/boost/v1.64.0-alice1-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/Python-modules/1.0-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/Python-modules/1.0-1/lib64:
/root/ship-log-keep/sw/slc7_x86-64/Python/v2.7.10-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/libpng/v1.6.18-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/OpenSSL/v1.0.2o-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/zlib/v1.2.8-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/FreeType/v2.6-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/XRootD/v4.8.3-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/GSL/v1.16_FAIRSHIP-1/lib:
/root/ship-log-keep/sw/slc7_x86-64/GCC-Toolchain/v6.2.0-alice1-1/lib64:
/root/ship-log-keep/sw/slc7_x86-64/GCC-Toolchain/v6.2.0-alice1-1/lib

However, even if I remove the first line, (the one containing ROOT) I get the same result.

Yes, we are the one controlling the LD_LIBRARY_PATH and how we install ROOT.

So I am repeating the whole procedure with different parameters.

v6.18.00, builtin_glew, builtin_ftgl => no graphics
v6.18.00, glew, builtin_ftgl         => no graphics
v6.18.00, glew, ftgl                 => no graphics
v6.14.00, builtin_glew, builtin_ftgl => graphics starts, but crash with logs above
v6.14.00, glew, builtin_ftgl         => graphics starts, but crash with logs above
v6.14.00, glew, ftgl                 => graphics starts, but crash with logs above

Then, our installation on lxplus is:

v6.18.00, builtin_glew, builtin_ftgl => graphics starts, but crash with logs above
v6.14.00, builtin_glew, builtin_ftgl => graphics starts, but crash with logs above

Now I am thinking… Can it be my local workstation that need something installed?

OK - I’m late to this, there is too much context and too many parameters - can we meet and discuss this quickly? Say at 4pm, my office?

Definitely!

4pm at your office works fine!

Many thanks :slight_smile:

Guys,

I am quite sorry to re-port that I did anything I could (or that I am aware of) to remove libGL.so from my build of ROOT.

Unfortunately libEve.so still link to libGL.so.

This is however the case also for the root provide in lcg.

[smosciat@lxplus741 ~]$ ldd /cvmfs/sft.cern.ch/lcg/views/LCG_96/x86_64-centos7-gcc8-opt/lib/libEve.so | grep -i gl
	libGLU.so.1 => /lib64/libGLU.so.1 (0x00007f7e61625000)
	libRGL.so => /cvmfs/sft.cern.ch/lcg/views/LCG_96/x86_64-centos7-gcc8-opt/lib/libRGL.so (0x00007f7e60b07000)
	libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f7e60688000)
	libOpenGL.so.0 => /lib64/libOpenGL.so.0 (0x00007f7e6045a000)
	libFTGL.so => /cvmfs/sft.cern.ch/lcg/views/LCG_96/x86_64-centos7-gcc8-opt/lib/libFTGL.so (0x00007f7e60246000)
	libGL.so.1 => /lib64/libGL.so.1 (0x00007f7e5b1e2000)
	libGLEW.so => /cvmfs/sft.cern.ch/lcg/views/LCG_96/x86_64-centos7-gcc8-opt/lib/libGLEW.so (0x00007f7e5af83000)
	libgl2ps.so.1 => /cvmfs/sft.cern.ch/lcg/views/LCG_96/x86_64-centos7-gcc8-opt/lib/libgl2ps.so.1 (0x00007f7e5ad6a000)
	libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f7e5a140000)

And… at this point I was expecting to say that, such ROOT works, but it is not the case…

So, also the ROOT in LCG96 seems to don’t work well with the graphics.

Can somebody else reproduce the issue?

$ source /cvmfs/sft.cern.ch/lcg/views/LCG_96/x86_64-centos7-gcc8-opt/setup.sh
$ which root
/cvmfs/sft.cern.ch/lcg/views/LCG_96/x86_64-centos7-gcc8-opt/bin/root
$ root /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.18.00/src/tutorials/eve/geom_atlas.C
... crash after a while...
# it does not show the atlas detector

This is the case for both x86_64-centos7-gcc8-opt and x86_64-centos7-gcc62-opt.

@Axel @amadio

Can somebody try to reproduce as well?

Thanks for your report. Guilherme and I will look at that on Monday around 11am; we should be able to get that fixed!

1 Like