[
https://issues.apache.org/jira/browse/ZOOKEEPER-1214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185558#comment-13185558
]
[email protected] commented on ZOOKEEPER-1214:
----------------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2208/
-----------------------------------------------------------
(Updated 2012-01-13 12:10:38.234750)
Review request for zookeeper.
Summary
-------
See https://issues.apache.org/jira/browse/ZOOKEEPER-1214
This addresses bug ZOOKEEPER-1214.
https://issues.apache.org/jira/browse/ZOOKEEPER-1214
Diffs (updated)
-----
/src/java/main/org/apache/zookeeper/jmx/MBeanRegistry.java 1226094
/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java 1226094
/src/java/test/org/apache/zookeeper/test/QuorumUtil.java 1226094
/src/java/test/org/apache/zookeeper/test/QuorumUtilTest.java PRE-CREATION
Diff: https://reviews.apache.org/r/2208/diff
Testing
-------
-
Thanks,
César
> QuorumPeer should unregister only its previsously registered MBeans instead
> of use MBeanRegistry.unregisterAll() method.
> ------------------------------------------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-1214
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1214
> Project: ZooKeeper
> Issue Type: Bug
> Components: quorum
> Reporter: César Álvarez Núñez
> Assignee: César Álvarez Núñez
> Fix For: 3.5.0
>
> Attachments: ZOOKEEPER-1214.patch, ZOOKEEPER-1214.patch,
> ZOOKEEPER-1214.patch
>
>
> When a QuorumPeer thread dies, it is unregistering *all* ZKMBeanInfo MBeans
> previously registered on its java process; including those that has not been
> registered by itself.
> It does not cause any side effect in production environment where each server
> is running on a separate java process; but fails when using
> "org.apache.zookeeper.test.QuorumUtil" to programmatically start up a
> zookeeper server ensemble and use its provided methods to force Disconnected,
> SyncConnected or SessionExpired events; in order to perform some
> basic/functional testing.
> Scenario:
> * QuorumUtil qU = new QuorumUtil(1); // It creates a 3 servers ensemble.
> * qU.startAll(); // Startup all servers: 1 Leader + 2 Followers
> * qU.shutdown\(i\); // i is a number from 1 to 3. It shutdown one server.
> The last method causes that a QuorumPeer will die, invoking the
> MBeanRegistry.unregisterAll() method.
> As a result, *all* ZKMBeanInfo MBeans are unregistered; including those
> belonging to the other QuorumPeer instances.
> When trying to restart previous server (qU.restart\(i\)) an AssertionError is
> thrown at MBeanRegistry.register(ZKMBeanInfo bean, ZKMBeanInfo parent)
> method, causing the QuorumPeer thread dead.
> To solve it:
> * MBeanRegistry.unregisterAll() method has been removed.
> * QuorumPeer only unregister its ZKMBeanInfo MBeans.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira