esmf-org/esmf-profiler

Babeltrace2 lib not found when using c-shell

Closed this issue · 3 comments

Describe the bug

On Hera, after the install I dectivate / re-activate the venv, then run esmf-profiler. The babeltrace2 lib is not found:

[venv] [Rocky.Dunlap@hfe06 esmf-profiler]$ deactivate 
[Rocky.Dunlap@hfe06 esmf-profiler]$ source venv/bin/activate.csh
[venv] [Rocky.Dunlap@hfe06 esmf-profiler]$ esmf-profiler 
Traceback (most recent call last):
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/venv/bin/esmf-profiler", line 11, in <module>
    load_entry_point('esmf-profiler', 'console_scripts', 'esmf-profiler')()
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/venv/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 476, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/venv/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 2700, in load_entry_point
    return ep.load()
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/venv/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 2318, in load
    return self.resolve()
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/venv/lib64/python3.6/site-packages/pkg_resources/__init__.py", line 2324, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/src/esmf_profiler/main.py", line 14, in <module>
    from esmf_profiler.analyses import LoadBalance
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/src/esmf_profiler/analyses.py", line 1, in <module>
    from esmf_profiler.event import TraceEvent, DefineRegion, RegionProfile
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/src/esmf_profiler/event.py", line 3, in <module>
    import bt2
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/dependencies/INSTALL/babeltrace2-2.0.4/lib64/python3.6/site-packages/bt2/__init__.py", line 26, in <module>
    from bt2.clock_class import ClockClassOffset
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/dependencies/INSTALL/babeltrace2-2.0.4/lib64/python3.6/site-packages/bt2/clock_class.py", line 23, in <module>
    from bt2 import native_bt, object, utils
  File "/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/dependencies/INSTALL/babeltrace2-2.0.4/lib64/python3.6/site-packages/bt2/native_bt.py", line 13, in <module>
    from . import _native_bt
ImportError: libbabeltrace2.so.0: cannot open shared object file: No such file or directory

Looking at activate.csh:

[Rocky.Dunlap@hfe06 esmf-profiler]$ cat venv/bin/activate.csh
setenv LD_LIBRARY_PATH /apps/gnu/gcc-9.2.0/lib64:/apps/gnu/gcc-9.2.0/lib:/apps/slurm/default/lib/scratch2/NCEPDEV/stmp1/Rocky.Dunlap/esmf-profiler/dependencies/INSTALL/babeltrace2-2.0.4/lib

It appears that LD_LIBRARY_PATH is missing a delimiter (:). There should be a ":" before /scratch2/NCEPDEV/....

To Reproduce
Run the quick start on Hera in c-shell.

Expected behavior
esmf-profiler should run after decactivate/reactivate.

After manually adding the ":" to the LD_LIBRARY_PATH, the esmf-profiler does successfully run. So the install.sh script needs to be fixed to properly put in the delimiter.

Fixed. Both were missing the ":" delimiter.

image