You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python GVM API出现Broken Pipe及Bad File Descriptor错误原因排查

Broken Pipe错误原因分析

Broken Pipe错误的本质是:当你尝试向一个已经被对方关闭的网络连接写入数据时,操作系统返回的错误。结合你这个OpenVAS报告抓取+Prometheus指标暴露的场景,常见原因有这几个:

  • Prometheus主动终止了采集连接
    Prometheus有scrape_timeout配置(默认10秒),如果你的API抓取OpenVAS报告、计算指标的耗时超过了这个超时时间,Prometheus会直接断开HTTP连接。但你的代码可能还在继续生成指标数据并往响应流里写,这时候就会触发Broken Pipe错误。

  • OpenVAS服务器中途断开了连接
    抓取OpenVAS报告的过程中,OpenVAS服务可能因为负载过高、会话超时或者内部错误提前关闭了和你的API之间的连接,但你的代码还在尝试读取报告数据或者发送请求,导致写入已断开的连接。

  • 网络链路异常中断
    API和OpenVAS服务器、API和Prometheus之间的网络出现波动(比如防火墙重置连接、网络丢包、路由变更),导致连接被强制关闭,后续的读写操作就会触发Broken Pipe。

  • 代码层面的资源管理问题
    比如你的HTTP响应对象没有正确处理异步/并发场景,或者在抓取OpenVAS数据时,连接资源没有及时释放,后续代码还在复用已失效的连接实例进行读写操作。

如果能提供具体的代码片段和完整报错栈,可以更精准定位到是哪一种情况(比如报错栈里如果是在往HTTP响应写数据时触发,大概率是Prometheus超时;如果是在调用OpenVAS API时触发,就是OpenVAS侧的连接问题)。

内容的提问来源于stack exchange,提问作者Christophe Dumont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 00:49:52