brpc icon indicating copy to clipboard operation
brpc copied to clipboard

对端重启后,客户端报错Reached timeout

Open vinllen opened this issue 2 years ago • 3 comments

Describe the bug (描述bug) 对端服务端重启后,某些情况情况下客户端会报错Reached timeout,有时候又是报错EOF(符合预期)。毕竟tcp断开了,服务端会发一个RST包,从而客户端直接EOF。 因为我们配置的超时时间比较久,所以导致了对端进程退出后,等到超时才感知到(Reached timeout),我们希望业务能够立刻感知到。 不知道是否因为我们参数配置的问题?

To Reproduce (复现方法)

Expected behavior (期望行为)

Versions (各种版本) OS: Compiler: brpc: protobuf:

Additional context/screenshots (更多上下文/截图)

vinllen avatar May 03 '22 11:05 vinllen

某些情况是什么情况,网络有丢包情况吗?

wwbmmm avatar May 09 '22 02:05 wwbmmm

如果brpc本身没有问题的话,看起来只有可能是最后回复的RST包丢包了。所以想请问下,从设计来说,这种场景,brpc理论上都应该是EOF吧? 我们有3个客户端,位于3台主机上,服务端重启后(服务端也有多台),3个客户端报错都有Reached timeout,这就比较奇怪,理论上不应该同时都丢包了。

vinllen avatar May 09 '22 04:05 vinllen

理论上应该是EOF的。可以抓包看下,客户端是否及时收到了RST包

wwbmmm avatar May 09 '22 12:05 wwbmmm