Flint: Issue while importing OpenMP
Feedback from @claustre on the new ID22 ctrl machine.
This is due to the fact OpenMP was designed in such way it uses a lot of memory in the TLS.
This can became an issue at some point.
At ID22, it is possible to start Flint, but not to attach it.
Feedback from @tvincent this can be fixed the following ways:
- Import OpenMP (or something using OpenMP) earlier in the python code
- Use something like
LD_PRELOAD=/lib/x86_64-linux-gnu/libgomp.so.1
to setup the Flint env
Anyway
- Anyway it is produced during the RPC call to
get_flint_api_version
while BLISS try to attach Flint process. At this stagesilx
norsilx.image.medianfilter
are mandatory. So this call should also be fixed in order to be able to attach Flint to the BLISS session.
File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 885, in embed
cmd_line_i._execute(inp)
File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 481, in _execute
raise exception # .with_traceback(exception.__traceback__)
File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 472, in _execute_task
self._execute_line(*args, **kwargs)
File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 411, in _execute_line
self._eval_line(line)
File "/users/blissadm/local/bliss.git/bliss/shell/cli/repl.py", line 421, in _eval_line
result = eval(code, self.get_globals(), self.get_locals())
File "<stdin>", line 1, in <module>
File "/users/blissadm/local/bliss.git/bliss/shell/standard.py", line 943, in flint
proxy = plot_module.get_flint(creation_allowed=True, mandatory=True)
File "/users/blissadm/local/bliss.git/bliss/flint/client/proxy.py", line 637, in get_flint
FLINT = FlintClient()
File "/users/blissadm/local/bliss.git/bliss/flint/client/proxy.py", line 62, in __init__
self._init(process)
File "/users/blissadm/local/bliss.git/bliss/flint/client/proxy.py", line 66, in _init
self.__start_flint()
File "/users/blissadm/local/bliss.git/bliss/flint/client/proxy.py", line 146, in __start_flint
self.__attach_flint(process)
File "/users/blissadm/local/bliss.git/bliss/flint/client/proxy.py", line 284, in __attach_flint
remote_flint_api_version = proxy.get_flint_api_version()
File "/users/blissadm/local/bliss.git/bliss/comm/rpc.py", line 747, in __getattribute__
client.try_connect()
File "/users/blissadm/local/bliss.git/bliss/comm/rpc.py", line 542, in try_connect
return self._try_connect()
File "/users/blissadm/local/bliss.git/bliss/comm/rpc.py", line 572, in _try_connect
metadata = self._call__("introspect", (), {})
File "/users/blissadm/local/bliss.git/bliss/comm/rpc.py", line 648, in _call__
raise value.exception
File "/users/blissadm/local/bliss.git/bliss/comm/rpc.py", line 669, in _raw_read
for m in unpacker:
File "msgpack/_unpacker.pyx", line 518, in msgpack._cmsgpack.Unpacker.__next__
File "msgpack/_unpacker.pyx", line 443, in msgpack._cmsgpack.Unpacker._unpack
File "/users/blissadm/local/bliss.git/bliss/common/msgpack_ext.py", line 137, in _ext_hooks
obj = decoder(data)
File "/users/blissadm/local/bliss.git/bliss/flint/flint_api.py", line 30, in <module>
from bliss.flint.helper import plot_interaction, scan_info_helper
File "/users/blissadm/local/bliss.git/bliss/flint/helper/plot_interaction.py", line 19, in <module>
from silx.gui.plot.actions import PlotAction
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/plot/__init__.py", line 63, in <module>
from .PlotWidget import PlotWidget # noqa
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/plot/PlotWidget.py", line 60, in <module>
from ..colors import Colormap
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/gui/colors.py", line 41, in <module>
from silx.math.combo import min_max
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/math/__init__.py", line 39, in <module>
from .medianfilter import medfilt, medfilt1d, medfilt2d
File "/users/blissadm/conda/miniconda/envs/bliss_dev/lib/python3.7/site-packages/silx/math/medianfilter/__init__.py", line 30, in <module>
from .medianfilter import (medfilt, medfilt1d, medfilt2d)
ImportError: dlopen: cannot load any more object with static TLS