93年的香槟 2024-10-25 16:56
浏览 6
已结题

curator优雅关机问题

遇到问题的场景

pod重启的时候会遇到

怀疑的方向

第一步: pod1 下线
第二步: pod2 发现node数变更,触发zk的watch,当去判断时,自己也被close了(也被下线了);然后checkState异常

这么怀疑的原因:
org.apache.curator.framework.imps.CuratorFrameworkImpl#close 先把state给改成了stopped;
并发场景,watcher线程org.apache.curator.framework.state.ConnectionStateListener#stateChanged 发现节点变更了,进行了 client.checkExists()

13:57:38.947 [][main-EventThread][NodeCache][] ERROR - 
java.lang.IllegalStateException: Expected state [STARTED] was [STOPPED]
        at org.apache.curator.shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:823)
        at org.apache.curator.framework.imps.CuratorFrameworkImpl.checkState(CuratorFrameworkImpl.java:432)
        at org.apache.curator.framework.imps.CuratorFrameworkImpl.checkExists(CuratorFrameworkImpl.java:459)
        at org.apache.curator.framework.recipes.cache.NodeCache.reset(NodeCache.java:258)
        at org.apache.curator.framework.recipes.cache.NodeCache.access$100(NodeCache.java:57)
        at org.apache.curator.framework.recipes.cache.NodeCache$2.process(NodeCache.java:101)
        at org.apache.curator.framework.imps.NamespaceWatcher.process(NamespaceWatcher.java:77)
        at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:535)
        at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:510)

讨论的点

  • 有没有解决方案,解决这个error日志;我在做error日志处理(优雅关机),不期望重启的时候有ERROR日志
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月2日
    • 创建了问题 10月25日