ChromaDB SEGV 복구

2026-04-12 배움

문제

품아이 ChromaDB에서 query() 호출 시 SEGV(프로그램 강제 종료). chroma 검색이 전부 죽어서 수주간 방치됨.

원인

  1. 위키백과 66,315건 한번에 넣음 (벌크 인제스트)
  2. 원본 7,411건인데 중복으로 24,842건이 됨 (약 3배)
  3. 총 91,157건 → 인덱스 279MB → 메모리 초과 → SEGV

해결

  1. SQLite에서 wiki_ 접두어 66,315건 직접 삭제
  2. 인덱스 파일 삭제 → ChromaDB가 자동으로 다시 만듦
  3. VACUUM으로 511MB → 139MB

교훈

  • 대량 데이터 넣기 전에 메모리/인덱스 크기 영향 먼저 테스트
  • 인덱싱 스크립트는 upsert(중복 방지) 사용. add 금지
  • ChromaDB 인덱스 깨지면 SQLite 직접 조작 + bin 파일 삭제로 복구 가능

연결