-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Check duplicate issues.
- Checked for duplicates
Description
This issue stems originally from cms-sw/cmssw#43077 and is a place to continue the discussions of #14261 and #14276 .
The symptoms
In seemingly innocent examples we end up opening a huge amount of files at ROOT startup time. See in particular cms-sw/cmssw#43077 (comment) or cms-sw/cmssw#43077 (comment) .
It turns out that the immediate cause of the large amount of open calls is that some symbol is missing and cling needs to traverse many files in order to find it. So far, offending symbols have been TString::kNPOS and k* variables from TError.h.
The way forward
While the two linked ROOT PRs solve (maybe hide?) the immediate problem, there is an underlying root cause which is highlighted by the fact that in ROOT 6.26 (LLVM9) none of this was an issue. Ideally, we need to find a way to avoid the eager search of symbols in all libraries in $LD_LIBRARY_PATH. In fact, the mere fact that we search for the symbol TString::kNPOS in such simple examples is a problem, that shouldn't be necessary.
Reproducer
ROOT version
>=6.28
Installation method
build from source
Operating system
Any
Additional context
No response