Describe the bug
Refer to https://github.com/oceanbase/pyseekdb/actions/runs/20566829136 for details.
I lost the backtrace information of the coredump file. But I'm sure it's caused by GNU CXX ABI flag.
pylibseekdb is built with ABI=0 and many other libraries built with ABI=1 flag, such as onnxruntime.
When testing pyseekdb, it load pylibseekdb first and then onnxruntime. So we can add import onnxruntime at the head of init.py to avoid this issue.
More information:
- pylibseekdb built with _GLIBCXX_USE_CXX11_ABI=0 and many other libraries built with _GLIBCXX_USE_CXX11_ABI=1, and it causes coredump if they were loaded in the same process;
- We have rebuilt pylibseekdb with _GLIBCXX_USE_CXX11_ABI=0 and -Bsymbolic flags, so it would search symbols in the libseekdb.so first and the conflict resolved if the process load libseekdb.so after libraries with ABI=1;
- But in the test case, the testing process load pylibseekdb first. When it load onnxruntime, it find symbols from process namespace first and find stdc++ with ABI=0, then it coredump.
Environment
No.
Fast reproduce steps
poetry run pytest tests/integration_tests/test_client_creation.py -k embedded
Expected behavior
No response
Actual behavior
No response
Additional context
No response
Describe the bug
Refer to https://github.com/oceanbase/pyseekdb/actions/runs/20566829136 for details.
I lost the backtrace information of the coredump file. But I'm sure it's caused by GNU CXX ABI flag.
pylibseekdbis built with ABI=0 and many other libraries built with ABI=1 flag, such as onnxruntime.When testing pyseekdb, it load pylibseekdb first and then onnxruntime. So we can add
import onnxruntimeat the head of init.py to avoid this issue.More information:
Environment
No.
Fast reproduce steps
poetry run pytest tests/integration_tests/test_client_creation.py -k embedded
Expected behavior
No response
Actual behavior
No response
Additional context
No response