Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 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.
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB