Files
faiss/.github
Michael Norris 6376bc35e3 Fix CI: (cuVS) conda shards cache lock, (ARM) bump openblas, (SVS) fix LeanVec double-destruction (#5209)
Summary:
Pull Request resolved: https://github.com/facebookresearch/faiss/pull/5209

Three fixes for GitHub Actions CI build/test failures:

1. sqlite3 "database is locked" error (cuVS cmake builds)

conda-libmamba-solver 26.4.0 uses a SQLite shards cache for package index
data. When consecutive conda install commands run in the same job step,
the SQLite lock from the first install is not fully released before the
second install begins, causing:
sqlite3.OperationalError: database is locked

Fix: Add conda clean --index-cache between the cuVS and PyTorch conda
installs to flush the shards cache and release the lock.

2. OpenBLAS version pin conflict (ARM64 conda builds)

conda-forge removed openblas 0.3.32, making it unresolvable. The conda
recipes pinned 0.3.32 for non-x86_64 (ARM64) and macOS builds, causing:
package libfaiss requires openblas 0.3.32.*, but none of the providers can be installed

Fix: Bump all openblas/libopenblas pins from 0.3.32 to 0.3.33 in the
conda recipes and from 0.3.29 to 0.3.33 in the cmake CI action.

3. Flaky SVS LeanVec test aborts (SVSLL tests)

IndexSVSVamanaLeanVec::~IndexSVSVamanaLeanVec() explicitly called
IndexSVSVamana::~IndexSVSVamana(), but C++ destructor chaining already
calls the base destructor automatically. This caused double-destruction of
base class members (notably std::vector<float> stored_vectors), resulting
in a double-free and non-deterministic SIGABRT. The IVF variant
(IndexSVSIVFLeanVec) correctly omits this call.

Fix: Remove the explicit base destructor call; let C++ handle it.

Reviewed By: pankajsingh88

Differential Revision: D104902441

fbshipit-source-id: c4ab80a4c1fdeb9976c4e089dfb95814284824a7
2026-05-13 10:12:43 -07:00
..