You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PODIO has an implicit plug-in mechanism that is necessary to load I/O functionality for EDMs that have been generated. There are several shared libraries that are loaded at runtime only, and for which different plug-in mechanisms exist within PODIO. All of them essentially search LD_LIBRARY_PATH which makes it very easy to end up in a "polluted" environment if one is not careful enough. This bites us regularly in e.g. CI, especially if breaking changes are introduced and the underlying environment has not yet caught up.
Currently the plug-in mechanisms are
ROOT dictionary loading where we have no real control, since this is all happening in ROOT
SIO Block library loading. Here we have all control via the SIOBlockLibraryLoader, where we currently explicitly search for libraries on LD_LIBRARY_PATH:
PODIO has an implicit plug-in mechanism that is necessary to load I/O functionality for EDMs that have been generated. There are several shared libraries that are loaded at runtime only, and for which different plug-in mechanisms exist within PODIO. All of them essentially search
LD_LIBRARY_PATH
which makes it very easy to end up in a "polluted" environment if one is not careful enough. This bites us regularly in e.g. CI, especially if breaking changes are introduced and the underlying environment has not yet caught up.Currently the plug-in mechanisms are
SIOBlockLibraryLoader
, where we currently explicitly search for libraries onLD_LIBRARY_PATH
:podio/src/SIOBlock.cc
Lines 163 to 178 in 09d17d4
The text was updated successfully, but these errors were encountered: