-Re: Wrong call to MBeanRegistry.unregisterAll() at QuorumPeer.run()?
César Álvarez Núñez 2011-10-06, 08:04
I've created the following ticket:
On Wed, Oct 5, 2011 at 8:25 PM, Mahadev Konar <[EMAIL PROTECTED]>wrote:
> Did you take a look at the tests that are using QuorumUtil?
> QuorumTest.java uses it. Want to check it out? Might be of some help!
> 2011/10/3 César Álvarez Núñez <[EMAIL PROTECTED]>:
> > Hi all,
> > I'm playing with "org.apache.zookeeper.test.QuorumUtil" in order to
> > 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
> > 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
> > 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.