Skip to content

[Bug]: unittest fails with the latest pylibseekdb #98

@hnwyllmm

Description

@hnwyllmm

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:

  1. 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;
  2. 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;
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: p0This issue will be fixed in the latest major/minor versiontype: bugSomething isn't working

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions