oceanbase / oceanbase/pyseekdb

[Bug]: pylibseekdb 1.2.0 / 1.3.0 SIGSEGV on macOS 15.1.1 arm64 (embedded mode)

Open
#229 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
62
Forks
35
Avg merge
2d 11h
Merged PRs (30d)
2

Description

Describe the bug

Summary
pylibseekdb 1.2.0 and 1.3.0 crash with SIGSEGV (segmentation fault) on macOS 15.1.1 arm64 when using embedded mode (Client(path=..., database='test')). Only pylibseekdb 1.1.0 works correctly on this platform.

Environment
Item Value
OS macOS 15.1.1 (Sequoia)
Arch arm64 (Apple Silicon)
Python 3.10
pyseekdb (Python SDK) 1.3.0
pylibseekdb (native lib) 1.1.0 (works) / 1.2.0, 1.3.0 (crash)
Fast reproduce steps
import pyseekdb

client = pyseekdb.Client(path="./seekdb_data", database="test")
# ↑ SIGSEGV here with pylibseekdb >= 1.2.0

Or via CLI:

pip install pyseekdb==1.3.0 pylibseekdb==1.3.0
python -c "import pyseekdb; c = pyseekdb.Client(path='./data', database='test')"
# Segmentation fault: 11
Expected behavior

Client() initializes successfully in embedded mode, same as pylibseekdb 1.1.0.

Actual behavior
  • pylibseekdb 1.1.0: Works correctly. Can create collections, upsert data, and run hybrid_search with HNSW index.
  • pylibseekdb 1.2.0: Crashes with SIGSEGV at seekdb.open().
  • pylibseekdb 1.3.0: Crashes with SIGSEGV at seekdb.open().

The crash is a hard segfault (signal 11), not a Python exception. No traceback is produced.

Additional context
Workaround

Pin pylibseekdb to 1.1.0 while keeping pyseekdb Python SDK at 1.3.0:

pip install pyseekdb==1.3.0 pylibseekdb==1.1.0

This combination works on macOS 15.1.1 arm64 with full functionality (HNSW index, hybrid_search, RRF ranking, etc.).

Additional Notes
  • The issue is specific to embedded mode. I did not test server mode.
  • pyseekdb's PyPI description mentions embedded mode supports "Linux and macOS 15+", and 1.1.0 does work as advertised.
  • The crash appears to be in the native library (pylibseekdb), not the Python SDK layer.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the crash with pyseekdb 1.3.0 and pylibseekdb 1.2.0 or 1.3.0 using Client(path="./seekdb_data", database="test") and compare it with pylibseekdb 1.1.0. Start at the embedded-mode path reached by seekdb.open(); done means Client initializes without SIGSEGV on macOS 15.1.1 arm64 while preserving the reported embedded functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, python
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.