DeemOpen / zkui

A UI dashboard that allows CRUD operations on Zookeeper.
2.36k stars 977 forks source link

KeeperErrorCode = ConnectionLoss for / #32

Closed jackxu2011 closed 7 years ago

jackxu2011 commented 7 years ago

when connent to 3 zkServer using zookeeper 3.4.10 get error like this

2016-04-07 16:30:27 ERROR Home:103 - [org.apache.zookeeper.KeeperException.create(KeeperException.java:99), org.apache.zookeeper.KeeperException.create(KeeperException.java:51), org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1468), org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1496), com.deem.zkui.utils.ZooKeeperUtil.listNodeEntries(ZooKeeperUtil.java:255), com.deem.zkui.controller.Home.doGet(Home.java:71), javax.servlet.http.HttpServlet.service(HttpServlet.java:687), javax.servlet.http.HttpServlet.service(HttpServlet.java:790), org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:698), org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1564), com.deem.zkui.filter.AuthFilter.doFilter(AuthFilter.java:63), org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1544), org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:524), org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:138), org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:568), org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221), org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1105), org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:453), org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183), org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1039), org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136), org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52), org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97), org.eclipse.jetty.server.Server.handle(Server.java:445), org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:277), org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:216), org.eclipse.jetty.io.AbstractConnection$1.run(AbstractConnection.java:505), org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601), org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532), java.lang.Thread.run(Thread.java:722)] 2016-04-07 16:30:27 ERROR ServletUtil:75 - Error :KeeperErrorCode = ConnectionLoss for /

Haitianisgood commented 7 years ago

You can try to change zkSessionTimeout

apurvis commented 7 years ago

https://github.com/DeemOpen/zkui/pull/34

hupay commented 7 years ago

我的问题跟你一样。看别人解释导致的原因“一般是由于连接还未完成就执行zookeeper的get/create/exsit操作引起的.”,所以想到了线程休眠 2017-09-12 09:51:39 ERROR Home:103 - [org.apache.zookeeper.KeeperException.create(KeeperException.java:99), org.apache.zookeeper.KeeperException.create(KeeperException.java:51), org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1468), org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1496), com.deem.zkui.utils.ZooKeeperUtil.listNodeEntries(ZooKeeperUtil.java:255), com.deem.zkui.controller.Home.doGet(Home.java:71), javax.servlet.http.HttpServlet.service(HttpServlet.java:687), javax.servlet.http.HttpServlet.service(HttpServlet.java:790), org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:698), org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1564), com.deem.zkui.filter.AuthFilter.doFilter(AuthFilter.java:63), org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1544), org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:524), org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:138), org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:568), org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221), org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1105), org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:453), org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183), org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1039), org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136), org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52), org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97), org.eclipse.jetty.server.Server.handle(Server.java:445), org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:277), org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:216), org.eclipse.jetty.io.AbstractConnection$1.run(AbstractConnection.java:505), org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601), org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532), java.lang.Thread.run(Thread.java:745)] 2017-09-12 09:51:39 ERROR ServletUtil:76 - Error :KeeperErrorCode = ConnectionLoss for / 然后我在\src\main\java\com\deem\zkui\controller\Home.java第60行(doGet方法里)增加线程休眠重新编译下就不报错了。 Map<String, Object> templateParam = new HashMap<>(); String zkPath = request.getParameter("zkPath"); String navigate = request.getParameter("navigate"); Thread.sleep(30);// 新增 ZooKeeper zk = ServletUtil.INSTANCE.getZookeeper(request, response, zkServerLst[0], globalProps); List<String> nodeLst; List<LeafBean> leafLst;

该方案仅限参考

jackxu2011 commented 7 years ago

我重写了连接成功的事件,就解决了。把这个问题忘记关了