Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Zookeeper >> mail # user >> Wrong call to MBeanRegistry.unregisterAll() at QuorumPeer.run()?


Copy link to this message
-
Wrong call to MBeanRegistry.unregisterAll() at QuorumPeer.run()?
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.