Insitu Initialization Helper searches absolute path relatively to PYTHONPATH
Description
The catalyst_replay
tool looks in the initialize_params.conduit.binXXX
to reconstruct the init node, including the catalyst implementation name, path and python script in use. The implementation choice can be overridden using environment variables.
In ParaView Catalyst, one also need to find the python script. A fallback is to check under PYTHONPATH
environment. Sadly, in that case the vtkInsituInitializationHelper
uses the input script path as relative to those PYTHONPATH
directories, while in our case it is an absolute path.
So it fails with the warning
[pvbatch ]vtkInSituInitialization:272 WARN| File/path does not exist and not in PYTHONPATH
Also in my case it also ends with a segfault:
[Bashful:185250:0:185250] Caught signal 11 (Segmentation fault: address not mapped to object at address 0x70)
==== backtrace (tid: 185250) ====
0 0x000000000004d212 ucs_event_set_fd_get() ???:0
1 0x000000000004d3dd ucs_event_set_fd_get() ???:0
2 0x000000000003d1d0 __sigaction() ???:0
3 0x0000000000019f66 std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::size() /usr/include/c++/14.2.1/bits/stl_vector.h:993
4 0x0000000000023abf std::operator==<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >() /usr/include/c++/14.2.1/bits/stl_vector.h:2051
5 0x00000000000235ec std::operator!=<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >() /usr/include/c++/14.2.1/bits/stl_vector.h:2097
6 0x00000000000227d0 vtkInSituPipelinePython::SetArguments() /home/nicolas/ParaView/master/build/../Clients/InSitu/vtkInSituPipelinePython.cxx:46
7 0x000000000000637d process_script_args() /home/nicolas/ParaView/master/build/../Clients/InSitu/catalyst/ParaViewCatalyst.cxx:172
8 0x0000000000006cf4 catalyst_initialize_paraview() /home/nicolas/ParaView/master/build/../Clients/InSitu/catalyst/ParaViewCatalyst.cxx:283
9 0x00000000003fcb25 catalyst_initialize() /home/nicolas/Softwares/catalyst/source/src/catalyst/catalyst_api.c:271
10 0x0000000000006cce replay_catalyst_initialize() /home/nicolas/Softwares/catalyst/source/src/tools/replay/catalyst_replay.cpp:65
11 0x0000000000007fb6 main() /home/nicolas/Softwares/catalyst/source/src/tools/replay/catalyst_replay.cpp:410
12 0x0000000000025e08 __libc_init_first() ???:0
13 0x0000000000025ecc __libc_start_main() ???:0
14 0x00000000000067c5 _start() ???:0
Steps to reproduce
One must first run a simulation to dump some data, according to https://catalyst-in-situ.readthedocs.io/en/latest/catalyst_replay.html
then:
$ catalyst_replay dump_dir
using CATALYST_DEBUG=1
may be useful to be sure of which implementation is found.
Configuration
- Operating system and version: archlinux
- ParaView executable and version: master (post 5.13)
- ParaView configuration: catalyst