Hi all, I'm playing with "org.apache.zookeeper.test.QuorumUtil" in order to validate disconnected/expired logic from my Zookeeper clients but I've found the following problem:
QuorumUtil qU = new QuorumUtil(1); // Creates a 3 servers ensemble. qU.startAll(); // Startup the 3 servers. qU.shutdown(firstFollower); qU.shutdown(secondFollower); qU.restart(firstFollower); // It throws an Assertion Error. The problem is that an AssertionError is thrown at MBeanRegistry:89 (public void register(ZKMBeanInfo bean, ZKMBeanInfo parent)) which is catched internally. I'm not really sure where the problem is, but I think that invocation to method "MBeanRegistry.getInstance().unregisterAll();" in finally clause at QuoumPeer.run() method is not 100% right. At least in this use case where there are 3 QuormPeer instances running on the same JVM. In fact, after commenting that line server restarting works fine. I'm not pretty sure if it is a bug or I'm making an improper use of QuorumUtil. Any help? /César.
