Skip to content

Commit 6376bc3

Browse files
Michael Norrismeta-codesync[bot]
authored andcommitted
Fix CI: (cuVS) conda shards cache lock, (ARM) bump openblas, (SVS) fix LeanVec double-destruction (#5209)
Summary: Pull Request resolved: #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
1 parent bc490b5 commit 6376bc3

5 files changed

Lines changed: 18 additions & 14 deletions

File tree

.github/actions/build_cmake/action.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ runs:
5858
5959
# install base packages for ARM64
6060
if [ "${{ runner.arch }}" = "ARM64" ]; then
61-
conda install -y -q -c conda-forge openblas=0.3.29 gxx_linux-aarch64=14.2 sysroot_linux-aarch64=2.17
61+
conda install -y -q -c conda-forge openblas=0.3.33 gxx_linux-aarch64=14.2 sysroot_linux-aarch64=2.17
6262
fi
6363
6464
# install base packages for X86_64
@@ -77,6 +77,10 @@ runs:
7777
# and CUDA from cuVS channel for cuVS builds
7878
elif [ "${{ inputs.cuvs }}" = "ON" ]; then
7979
conda install -y -q libcuvs=26.02 'cuda-version=12.9' sysroot_linux-64=2.34 -c rapidsai -c rapidsai-nightly -c conda-forge
80+
# Clean index cache to prevent sqlite3 "database is locked" errors
81+
# from conda-libmamba-solver's shards cache between consecutive installs.
82+
# See: https://github.com/conda/conda-libmamba-solver/issues/667
83+
conda clean --index-cache 2>/dev/null || true
8084
fi
8185
8286
# install SVS runtime for SVS builds

conda/faiss-gpu-cuvs/meta.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@ outputs:
6161
host:
6262
- _openmp_mutex =4.5=2_kmp_llvm # [x86_64]
6363
- mkl >=2024.2.2,<2026 # [x86_64]
64-
- openblas =0.3.32 # [not x86_64]
64+
- openblas =0.3.33 # [not x86_64]
6565
- libcuvs =26.02
6666
- cuda-version {{ cuda_constraints }}
6767
- libsvs-runtime =0.3.0 # [x86_64 and linux]
6868
run:
6969
- _openmp_mutex =4.5=2_kmp_llvm # [x86_64]
7070
- mkl >=2024.2.2,<2026 # [x86_64]
71-
- openblas =0.3.32 # [not x86_64]
71+
- openblas =0.3.33 # [not x86_64]
7272
- cuda-cudart {{ cuda_constraints }}
7373
- libcublas {{ libcublas_constraints }}
7474
- libcuvs =26.02

conda/faiss-gpu/meta.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ outputs:
6060
- cuda-toolkit {{ cudatoolkit }}
6161
host:
6262
- mkl >=2024.2.2,<2026 # [x86_64]
63-
- openblas =0.3.32 # [not x86_64]
63+
- openblas =0.3.33 # [not x86_64]
6464
- libsvs-runtime =0.3.0 # [x86_64 and linux]
6565
run:
6666
- mkl >=2024.2.2,<2026 # [x86_64]
67-
- openblas =0.3.32 # [not x86_64]
67+
- openblas =0.3.33 # [not x86_64]
6868
- cuda-cudart {{ cuda_constraints }}
6969
- libcublas {{ libcublas_constraints }}
7070
- libsvs-runtime =0.3.0 # [x86_64 and linux]

conda/faiss/meta.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ outputs:
5656
- mkl-devel >=2024.2.2,<2026 # [x86_64 and win]
5757
- python_abi
5858
{% endif %}
59-
- libopenblas =0.3.32 # [osx]
59+
- libopenblas =0.3.33 # [osx]
6060
host:
6161
- python {{ python }}
6262
- libcxx =20.1.1 # [osx and arm64]
@@ -69,8 +69,8 @@ outputs:
6969
- mkl >=2024.2.2,<2026 # [x86_64 and win]
7070
- python_abi =3.12
7171
{% endif %}
72-
- openblas =0.3.32 # [not x86_64]
73-
- libopenblas =0.3.32 # [osx]
72+
- openblas =0.3.33 # [not x86_64]
73+
- libopenblas =0.3.33 # [osx]
7474
run:
7575
- python {{ python }}
7676
- libcxx =20.1.1 # [osx and arm64]
@@ -83,8 +83,8 @@ outputs:
8383
- mkl >=2024.2.2,<2026 # [x86_64 and win]
8484
- python_abi =3.12
8585
{% endif %}
86-
- openblas =0.3.32 # [not x86_64]
87-
- libopenblas =0.3.32 # [osx]
86+
- openblas =0.3.33 # [not x86_64]
87+
- libopenblas =0.3.33 # [osx]
8888
test:
8989
requires:
9090
- conda-build =25.1.2
@@ -120,7 +120,7 @@ outputs:
120120
- mkl >=2024.2.2,<2026 # [x86_64 and win]
121121
- python_abi =3.12
122122
{% endif %}
123-
- libopenblas =0.3.32 # [osx]
123+
- libopenblas =0.3.33 # [osx]
124124
host:
125125
- python {{ python }}
126126
- numpy >=2.0,<3.0
@@ -136,7 +136,7 @@ outputs:
136136
- mkl >=2024.2.2,<2026 # [x86_64 and win]
137137
- python_abi =3.12
138138
{% endif %}
139-
- libopenblas =0.3.32 # [osx]
139+
- libopenblas =0.3.33 # [osx]
140140
run:
141141
- python {{ python }}
142142
- numpy >=2.0,<3.0
@@ -151,7 +151,7 @@ outputs:
151151
- mkl >=2024.2.2,<2026 # [x86_64 and win]
152152
- python_abi =3.12
153153
{% endif %}
154-
- libopenblas =0.3.32 # [osx]
154+
- libopenblas =0.3.33 # [osx]
155155
test:
156156
requires:
157157
- numpy >=2.0,<3.0

faiss/svs/IndexSVSVamanaLeanVec.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ IndexSVSVamanaLeanVec::~IndexSVSVamanaLeanVec() {
5656
FAISS_ASSERT(status.ok());
5757
training_data = nullptr;
5858
}
59-
IndexSVSVamana::~IndexSVSVamana();
59+
// Base class destructor handles impl cleanup
6060
}
6161

6262
void IndexSVSVamanaLeanVec::add(idx_t n, const float* x) {

0 commit comments

Comments
 (0)