📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

适用版本: 7.6-7.17

1. 错误异常的基本描述 #

这条异常说明 Elasticsearch 在删除仓库中的一批 blob 时,failedBlobs 这一组对象没有删除成功。它通常出现在快照清理、仓库维护或删除遗留对象的阶段。

常见现象 #

  • cleanup 或快照删除过程失败。
  • 日志中带有失败对象列表或下层 IOException
  • 仓库可能部分删除成功,部分对象残留。

典型报错与异常栈 #

ElasticsearchException: Exception when deleting blobs [failedBlobs]

2. 为什么会发生这个错误 #

常见原因包括:

  • 对象存储权限不足,不能删除对象。
  • 某些 blob 已被外部程序改写、锁定或状态异常。
  • 网络抖动导致批量删除部分失败。
  • 仓库并发修改,删除时对象状态发生变化。

3. 如何排查和解决这个异常和解决这个异常 #

  1. 查看失败 blob 名单和下层异常。
  2. 确认仓库账号具有删除权限。
  3. 检查对象是否被生命周期策略、保留策略或外部程序影响。
  4. 排查清理期间是否有其他快照操作并发执行。
  5. 在问题消除后重新执行清理。

排查时需要注意的问题 #

  • 这通常不是“整个仓库都不可用”,而是部分对象删除失败。
  • 如果仓库处于高并发变更状态,先停写再清理更稳妥。

4. 如何解决这个错误 #

常用修复思路 #

  • 修复对象存储删除权限。
  • 停止外部程序同时操作仓库路径。
  • 对失败对象做二次检查和重试删除。
  • 在必要时先校验仓库一致性,再继续 cleanup。

后续注意事项与推荐建议 #

  • 清理任务应与快照写入任务错峰执行。
  • 对仓库删除失败建立告警和重试策略。

借助 INFINI 产品提升排障效率 #

5. 小结 #

Exception when deleting blobs [failedBlobs] 指向的是仓库对象删除阶段的部分失败。重点要看失败 blob、删除权限和并发仓库操作。

相关错误 #

附:日志上下文 #

ElasticsearchException: Exception when deleting blobs [failedBlobs]
        at org.elasticsearch.repositories.gcs.GCSRepository...
Caused by: java.io.IOException: ...