LLVM Error in the TPC reconstruction workflow

Hi @tklemenz,
it seems now the problem ist:

file=libGLU.so.1 [0];  needed by /home/tklemenz/AliSoftware/sw/ubuntu1804_x86-64/O2/v1.2.0-1/lib/libO2GPUTracking.so

Can you try to comment line 25

set(GPUCA_EVENT_DISPLAY ON)

in the file

GPUTracking/CMakeLists.txt

and recompile o2

I think the actual issue is that the radeon driver uses LLVM and interferes with the ROOT cling version. In principle we protected against this, but apparently there is still something which does not work correctly. For the moment I would just use -b.

Hi @wiechula,

I did as suggested but the same error still appears.

The output of

LD_DEBUG=files LD_DEBUG_OUTPUT=ld_debug_files.txt o2-tpc-reco-workflow --infile tpcdigits.root  --output-type clusters,tracks

can be found here.

Cheers,
Thomas

Hi @tklemenz,

now I see again

file=libglfw.so.3 [0];  needed by /home/tklemenz/AliSoftware/sw/ubuntu1804_x86-64/DebugGUI/v0.1.0-34bc77ae9c-4/lib/libO2DebugGUI.so

are you sure glfw built by alibuild is used?

I did all the steps described above:

-Dbuiltin_afterimage=ON

in root.sh, comment

prefer_system: "(?!osx)"
prefer_system_check: |
  printf "#if ! __has_include(<GLFW/glfw3.h>)\n#error \"GLFW not found, checking if we can build it.\"\n#endif\n" | cc -xc++ -std=c++17 - -c -o /dev/null || \
  { printf "#if __has_include(<GL/gl.h>) && __has_include(<X11/extensions/XInput2.h>) && __has_include(<X11/X.h>)\n#error \"OpenGL is found. We build GLFW ourselves.\"\n#endif\n" | cc -xc++ -std=c++17 - -c -o /dev/null && echo "OpenGL not found. This is a dummy package."; }

in glfw.sh, and comment

set(GPUCA_EVENT_DISPLAY ON)

in GPUTracking/CMakeLists.txt and recompiled.

Is there a way to check which glfw is used?

Dear all,

I was wondering if by this time anyone has found a solution to this problem? I never managed to run the DebugGUI with an AMD graphics card installed. I opened a jira ticket in the past, but that never got resolved. I think the underlying problem is still that interfering LLVM versions are used by the radeon drivers and ROOT.

I have tried with the newest 5.12 kernel (and thus radeon drivers), aliBuild 1.8.2 and the latest alidist recipes. Still I cannot run e.g. the o2-sim-digitizer-workflow without the -b flag. I would really like to use the DebugGUI, but I only managed to run it on my old laptop with intel graphics. My operating system is Ubuntu 20.04.

I have also tried to do the steps described here, but no luck. I have uploaded the LD_DEBUG files to cernbox.

Some help would greatly be appreciated.

Cheers,
Ole

I think ROOT solved the issue at some point (maybe already in 6.22). Can you try bumping the version in your alidist?

@eulisse in https://github.com/alisw/root the latest tag is 6-20. I tried with the official root-project/root repo and from there version 6.24.
I recompiled with that one, but then I cannot even do a simulation:

o2-sim -n 10 -g pythia8 --skipModules ZDC
[INFO] This is o2-sim version 1.2.0 (d0b54880b1)
[INFO] Built by ALIBUILD:1.8.2, ALIDIST-REV:f4e5ce19b9e181c7711573dd7184e2479dfda8e4 on OS:Linux-5.4.0-51-generic
[INFO] Running with 4 sim workers
[INFO] CREATING SIM SHARED MEM SEGMENT FOR 4 WORKERS
Spawning particle server on PID 98576; Redirect output to o2sim_serverlog
Spawning sim worker 0 on PID 98578; Redirect output to o2sim_workerlog0
Spawning hit merger on PID 98579; Redirect output to o2sim_mergerlog
[INFO] Merger process 98579 returned
[INFO] Simulation process took 0.341745 s
o2-sim: /home/oschmidt/alice/sw/SOURCES/ROOT/v6-24-00/v6-24-00/interpreter/cling/lib/Interpreter/CIFactory.cpp:617: {anonymous}::collectModuleMaps(clang::CompilerInstance&, llvm::SmallVectorImpl<std::__cxx11::basic_string >&)::<lambda(llvm::StringRef, const string&, const string&, std::string&, bool, bool)>: Assertion `llvm::sys::fs::exists(originalLoc.str())’ failed.
Aborted (core dumped)