Broken pipe异常分析及解决

Broken pipe异常分析报告

1.错误描述

ClientAbortException: java.io.IOException: Broken pipe

可能出现原因:

TCP服务端write数据时,收到SIGPIPE信号(连接已经终止)

场景:

  1. TCP握手尚未结束时,连接已经close;
  2. 服务端收到一次read,但write了多次;
  3. 连接通道被占满,新连接被拒绝时,client中断了所有连接。

2.分析过程

2.1.初步排查

每次出现该异常时,总是伴随/im/getUsercInfos.json接口的调用。

2.1.1具体现象
  • 异常记录时间=接口请求记录时间(server连接write前记录)-(2至10)ms;
  • 总是ios设备爆出;
  • 总是h端爆出。
2.1.2分析
  1. 可能性一:
    在请求该接口时,ios设备在某种情况下会中断该请求,导致TCP连接中server端无法向client端write数据。即在server端write之前连接已经close,write时出现异常。
    由于只有h端出现,但h、b客户端代码一致,不太可能单独出现,故可能性较低。

  2. 可能性二:
    在第一次连接已经正常握手,并正常cl

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值