You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "lt964709769 (GitHub)" <gi...@apache.org> on 2019/09/28 09:12:55 UTC

[GitHub] [dubbo] lt964709769 opened issue #5125: provider在网络波动恢复后,有可能无法正确恢复在zookeeper中的注册信息

- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [ ] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 2.6.X
* Operating System version: linux
* Java version: 1.8

### Steps to reproduce this issue

1.修改zookeeper源码,在 SessionTrackerImpl 的 设置session过期状态 与 清理session临时节点 代码中增加30s延迟,以模拟网络波动导致标记session过期与清理临时节点不同步的情况。以源码的方式启动zookeeper。
2.修改CuratorZookeeperClient,设置session过期时间为 5s ,并在createEphemeral中增加日志打印,当抛出NodeExistsException时,输出EphemeralOwner与当前的sessionId
3.启动provider,并确保provider的临时节点已注册到zookeeper中。
4.断开provider与zookeeper的网络连接,等待5s session过期后,恢复网络连接。

### Expected Result

EphemeralOwner 与 sessionId 未被输出,或输出的 EphemeralOwner 与 sessionId 相同。等待一段时间后,provider的注册信息在zookeeper中仍然存在。

### Actual Result

可以观察到日志打印的 EphemeralOwner 与 sessionId 不同,等待一段时间后,provider的注册信息被删除,且不再恢复。此时consumer调用时无法找到此provider。



[ Full content available at: https://github.com/apache/dubbo/issues/5125 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org

[GitHub] [dubbo] lt964709769 closed issue #5125: provider在网络波动恢复后,有可能无法正确恢复在zookeeper中的注册信息

Posted by "lt964709769 (GitHub)" <gi...@apache.org>.
[ issue closed by lt964709769 ]

[ Full content available at: https://github.com/apache/dubbo/issues/5125 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org