oceanbase / oceanbase/pyseekdb
[Bug]: pylibseekdb 1.2.0 / 1.3.0 SIGSEGV on macOS 15.1.1 arm64 (embedded mode)
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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