Linux部署Chroma服务,数据库扩容后频繁因SQLite无法打开数据库文件崩溃的问题求助
Linux部署Chroma服务,数据库扩容后频繁因SQLite无法打开数据库文件崩溃的问题求助
大家好,我这边遇到一个棘手的问题,想请教社区的各位大佬:
我们用Chroma搭建了一个项目,部署在Linux系统上。一开始服务运行完全正常,但在数据库扩容之后,问题就出现了——服务现在会频繁崩溃,每次都是同一个错误(详细的traceback附在下面)。目前的情况是服务能正常启动,但运行一段时间(时间不固定,没有规律)就会挂掉。
先附上我们看到的相关代码片段(来自Chroma的SQLite连接池实现):
@override def connect(self, *args: Any, **kwargs: Any) -> Connection: if hasattr(self._connection, "conn") and self._connection.conn is not None: return self._connection.conn # type: ignore # cast doesn't work here for some reason else: new_connection = Connection( self, self._db_file, self._is_uri, *args, **kwargs ) self._connection.conn = new_connection with self._lock: self._connections.add(weakref.ref(new_connection)) return new_connection
崩溃时的错误traceback如下:
File "lib/python3.11/site-packages/chromadb/api/models/Collection.py", line 195, in query File "lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 146, in wrapper File "lib/python3.11/site-packages/chromadb/rate_limiting/__init__.py", line 47, in wrapper File "lib/python3.11/site-packages/chromadb/api/segment.py", line 754, in _query File "lib/python3.11/site-packages/chromadb/telemetry/opentelemetry/__init__.py", line 146, in wrapper File "lib/python3.11/site-packages/chromadb/segment/impl/metadata/sqlite.py", line 214, in get_metadata File "lib/python3.11/site-packages/chromadb/db/impl/sqlite.py", line 132, in tx File "lib/python3.11/site-packages/chromadb/db/impl/sqlite.py", line 31, in __init__ File "lib/python3.11/site-packages/chromadb/db/impl/sqlite_pool.py", line 141, in connect File "lib/python3.11/site-packages/chromadb/db/impl/sqlite_pool.py", line 20, in __init__ sqlite3.OperationalError: unable to open database file
我们已经尝试了以下几种解决方案,但都没有效果:
- 将数据库文件的相对路径修改为绝对路径
- 通过
print()调试确认数据库连接能够正常关闭 - 使用多进程请求主服务进行测试,但测试过程中没有复现相同的错误
有没有大佬遇到过类似的问题,或者能给一些排查方向的建议?非常感谢!
备注:内容来源于stack exchange,提问作者Novak Xie
相关产品推荐
相关产品推荐

