coost
coost copied to clipboard
多次重连服务器失败,co::connect返回false, co::error()返回0
在生产环境中,我实现了一个高可用机制。在节点失效后,客户端自动重连其他节点。同时有其他守护进程会巡检节点,如果节点恢复之后就把其加入回可用节点列表。
问题的情况是,最开始有两个服务器,节点1失效切换到节点2是没问题的。但是在第一次切换之后,节点2切换回节点1(强制杀死节点2)的过程中。客户端与节点1重新建立连接,co::connect返回false, 但是co::error()返回0。具体平台是windows 10。
@neoblackcap
co::connect 返回值是 int 类型,返回0 表示连接成功
@idealvin 是我描述错了,应该是co::connect返回是非0的值,但是co::error返回0
看下源码 src/co/sock_win.cc,检查下有没有打印出什么日志
@neoblackcap 这个问题有什么进展么?
@idealvin 非常奇怪,换了新版本的话,co::error不返回0了,但是在明确是使用TCP的情况下,co::connect一样返回false,co::error则是WSAENOTCONN
之前是使用vcpkg提供的2.0.3,现在是使用github上面的master分支
能贴一下你的代码吗?
已经排查出原因了,跟这个没有关系。我再开一个issue讨论原因,是跟co::Event有关系