现象
用户在MacOS本地通过Docker部署FastGPT 4.8.4私有版本,初始使用PgVector向量库功能正常。更换为Milvus向量库后,所有容器可正常启动,且支持基础知识库搜索测试,但出现两类容器崩溃场景:1. 新导入超过3个单文件约5k的Word文档时,Milvus容器崩溃;2. 知识库搜索时勾选混合检索+结果重排+最低相关度选项时,Milvus容器崩溃。Milvus日志显示多个goroutine(如6467、6468)处于chan receive锁定线程状态,报错涉及github.com/panjf2000/ants/v2协程池的worker阻塞。
可能原因
目前未明确官方根因,结合报错日志推测,可能与协程池资源阻塞、向量批量写入或检索时的并发配置不足有关,具体需结合实际部署的资源与配置确认。
排查步骤
- 查看Milvus容器的运行日志,确认是否出现与issue中一致的goroutine chan receive报错。
- 检查当前部署的Milvus容器的CPU、内存资源配额,确认是否存在资源耗尽情况。
- 复现导入超3个5k Word文档的操作,验证是否触发容器崩溃。
- 复现勾选混合检索+结果重排+最低相关度的搜索操作,确认触发崩溃的条件。
- 核对FastGPT与Milvus的连接配置是否符合官方部署文档要求。
解决与验证
- 临时缓解:调整Milvus容器的资源配额,增加CPU与内存限制,避免资源耗尽。
- 优化配置:参考官方文档调整Milvus的并发写入、检索相关参数,具体参数需按实际环境确认。
- 效果验证:重新导入超过3个5k Word文档,或执行混合检索+结果重排+最低相关度的搜索操作,确认Milvus容器不再崩溃。