chroma-core / chroma-core/chroma
chromadb_rust_bindings SIGSEGV on macOS ARM64 (Python 3.14)
- Dominant language
- Rust
- Stars
- 29.3k
- Forks
- 2.5k
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 38
Description
### What happened?
## Bug Report: chromadb_rust_bindings SIGSEGV on macOS ARM64 (Python 3.14)
**Package:** chromadb 1.5.8 (`chromadb_rust_bindings.abi3.so`)
**OS:** macOS 26.4.1 (Darwin 25.4.0), Apple Silicon ARM64
**Python:** 3.14.3 (Homebrew)
**Reproduces:** Every run, ~13s after startup
**Crash type:** `EXC_BAD_ACCESS (SIGSEGV)` — `KERN_INVALID_ADDRESS at 0x0000000000000088`
---
### Summary
Background thread in `chromadb_rust_bindings.abi3.so` segfaults with a null pointer dereference (offset +0x88). All frames in the triggered thread point to image index 50 (`chromadb_rust_bindings.abi3.so`) with no symbols resolved. Main thread is idle in `__psynch_cvwait`. Crash is deterministic and generates a macOS crash reporter dialog on every invocation.
**Also loaded:** onnxruntime 1.25.0, numpy, tokenizers
**Crash incident ID:** 7B4FC6EB-402A-42C3-B8B2-07BB49EB796E
---
### Expected Behavior
No crash.
### Actual Behavior
macOS crash reporter dialog every run, Python exits with SIGSEGV.
### Versions
chromadb 1.5.8, Python 3.14.3 (Homebrew), macOS 26.4.1 (Darwin 25.4.0) Apple Silicon ARM64; also loaded: onnxruntime 1.25.0, numpy, tokenizers
### Relevant log output
```shell
---
**Environment**
- Python: 3.14.3 (arm64, Homebrew: /opt/homebrew/...)
- chromadb: 1.5.8
- chromadb_rust_bindings: abi3.so (arm64)
- onnxruntime: 1.25.0
- OS: macOS 26.4.1 (25E253), Apple Silicon
**Crash**
- Type: EXC_BAD_ACCESS (SIGSEGV)
- Subtype: KERN_INVALID_ADDRESS at 0x0000000000000088
- Signal: SIGSEGV
- Raw codes: 0x0000000000000001, 0x0000000000000088
- Uptime at crash: ~13s
- Incident ID: 7B4FC6EB-402A-42C3-B8B2-07BB49EB796E
**Crashed thread** — all frames in chromadb_rust_bindings.abi3.so [image 50], no symbols:
0 chromadb_rust_bindings.abi3.so offset: 25958564
1 chromadb_rust_bindings.abi3.so offset: 25943260
2 chromadb_rust_bindings.abi3.so offset: 25931232
3 chromadb_rust_bindings.abi3.so offset: 9018588
4 chromadb_rust_bindings.abi3.so offset: 10211600
5 chromadb_rust_bindings.abi3.so offset: 10398672
6 chromadb_rust_bindings.abi3.so offset: 10160324
7 chromadb_rust_bindings.abi3.so offset: 10162124
8 chromadb_rust_bindings.abi3.so offset: 10398848
(repeating pattern continues)
**Main thread** — blocked in condition wait, called from chromadb_rust_bindings:
0 __psynch_cvwait
1 _pthread_cond_wait
2-9 chromadb_rust_bindings.abi3.so (no symbols, offsets: 24621764, 14167048, 16023340, 16783236, 14838104, 14790504, 14921160, 14786212)
10 method_vectorcall_VARARGS_KEYWORDS (Python)
11 PyObject_Vectorcall
12 _PyEval_EvalFrameDefault
... pymain_run_file → Py_RunMain → start
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the crash with chromadb 1.5.8, Python 3.14.3, and macOS ARM64, then inspect the unsymbolized frames in chromadb_rust_bindings.abi3.so and the reported crash details. The report names no source file or test; done means the deterministic SIGSEGV no longer occurs and Python exits normally.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- macos, python, rust
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100