-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
bugSomething isn't workingSomething isn't workingc++C++ related issuesC++ related issuespythonPython related issuesPython related issues
Description
Both packages bundle the casacore libraries in their wheels, but:
- python-casacore is built with
manylinux2014and the older C++11_GLIBCXX_USE_CXX11_ABI=0 - arcae is built with
manylinux_2_28and the newer C++11_GLIBCXX_USE_CXX11_ABI=1.
This results in segfaults, probably due to the the symbols of the first extension module loaded having precedence over the the second extension module loaded.
Possible solutions:
- Use the lower priority module in a separate process (must use the
spawnand notforkmethod). arcae currently does this when using python-casacore to generate test case data.arcae/src/arcae/tests/conftest.py
Lines 286 to 294 in 5fdf5a6
def casa_table_at_path(factory, *args): with mp.get_context("spawn").Pool(1) as pool: return pool.apply(factory, args) @pytest.fixture def column_case_table(tmp_path_factory): return casa_table_at_path(generate_column_cases_table, tmp_path_factory.mktemp("column_cases")) - Use lazy imports in mixed packages and keep implementations orthogonal
- Help python-casacore upgrade to
manylinux_2_28asmanylinux2014will reach EOL in July 2024
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingc++C++ related issuesC++ related issuespythonPython related issuesPython related issues