brpc
brpc copied to clipboard
对端重启后,客户端报错Reached timeout
Describe the bug (描述bug) 对端服务端重启后,某些情况情况下客户端会报错Reached timeout,有时候又是报错EOF(符合预期)。毕竟tcp断开了,服务端会发一个RST包,从而客户端直接EOF。 因为我们配置的超时时间比较久,所以导致了对端进程退出后,等到超时才感知到(Reached timeout),我们希望业务能够立刻感知到。 不知道是否因为我们参数配置的问题?
To Reproduce (复现方法)
Expected behavior (期望行为)
Versions (各种版本) OS: Compiler: brpc: protobuf:
Additional context/screenshots (更多上下文/截图)
某些情况是什么情况,网络有丢包情况吗?
如果brpc本身没有问题的话,看起来只有可能是最后回复的RST包丢包了。所以想请问下,从设计来说,这种场景,brpc理论上都应该是EOF吧? 我们有3个客户端,位于3台主机上,服务端重启后(服务端也有多台),3个客户端报错都有Reached timeout,这就比较奇怪,理论上不应该同时都丢包了。
理论上应该是EOF的。可以抓包看下,客户端是否及时收到了RST包