Insitu Initialization Helper searches absolute path relatively to PYTHONPATH
## Description <!-- A clear and concise description of the problem with screenshots of the issue, if applicable. What is the behavior you see and what behavior do you expect? (Note: Feature requests should be made by creating a new topic here: https://discourse.paraview.org/c/feature-requests/14). --> 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. https://gitlab.kitware.com/paraview/paraview/-/blob/master/Clients/InSitu/vtkInSituInitializationHelper.cxx?ref_type=heads#L261 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 <!-- Steps to reproduce the behavior. Include example datafiles and/or state files that demonstrate the behavior. Screenshots may be helpful. --> 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, standalone client, client/server, pvpython, pvbatch --> * **Operating system and version:** archlinux * **ParaView executable and version:** <!-- GUI client, pvpython, pvbatch, etc. --> master (post 5.13) * **ParaView configuration:** <!-- standalone client, remote server, Catalyst, etc. --> catalyst
issue