You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "jiraposter@reviews.apache.org (Commented) (JIRA)" <ji...@apache.org> on 2011/12/15 00:37:32 UTC

[jira] [Commented] (ZOOKEEPER-1214) QuorumPeer should unregister only its previsously registered MBeans instead of use MBeanRegistry.unregisterAll() method.

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13169811#comment-13169811 ] 

jiraposter@reviews.apache.org commented on ZOOKEEPER-1214:
----------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2208/#review3914
-----------------------------------------------------------


a good cleanup, some comments before we can commit it.


/src/java/main/org/apache/zookeeper/jmx/MBeanRegistry.java
<https://reviews.apache.org/r/2208/#comment8794>

    cleanup this typo (2 returns)



/src/java/main/org/apache/zookeeper/jmx/MBeanRegistry.java
<https://reviews.apache.org/r/2208/#comment8793>

    let's call this 
    
    getRegisteredBeans()
    



/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java
<https://reviews.apache.org/r/2208/#comment8795>

    Add back the try/catch protection. This was necessary in some cases (I can't remember why off the top of my head though).



/src/java/test/org/apache/zookeeper/test/QuorumUtilTest.java
<https://reviews.apache.org/r/2208/#comment8796>

    license header is missing. add the std boilerplate found on any other java file in the project.



/src/java/test/org/apache/zookeeper/test/QuorumUtilTest.java
<https://reviews.apache.org/r/2208/#comment8798>

    add a comment to the class describing what this set of tests is for



/src/java/test/org/apache/zookeeper/test/QuorumUtilTest.java
<https://reviews.apache.org/r/2208/#comment8797>

    no tabs, reformat with spaces only. (you'll probably need to cleanup some of your other changes at the same time)



/src/java/test/org/apache/zookeeper/test/QuorumUtilTest.java
<https://reviews.apache.org/r/2208/#comment8799>

    it's fine to ref a jira here, however there should also be some details on what this test is doing. (short summary esp as the test itself is pretty clear)


- Patrick


On 2011-10-05 11:59:30, César Álvarez Núñez wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/2208/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-10-05 11:59:30)
bq.  
bq.  
bq.  Review request for zookeeper.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  See https://issues.apache.org/jira/browse/ZOOKEEPER-1214
bq.  
bq.  
bq.  This addresses bug ZOOKEEPER-1214.
bq.      https://issues.apache.org/jira/browse/ZOOKEEPER-1214
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    /src/java/test/org/apache/zookeeper/test/QuorumUtil.java 1179165 
bq.    /src/java/test/org/apache/zookeeper/test/QuorumUtilTest.java PRE-CREATION 
bq.    /src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java 1179166 
bq.    /src/java/main/org/apache/zookeeper/jmx/MBeanRegistry.java 1169669 
bq.  
bq.  Diff: https://reviews.apache.org/r/2208/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  -
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  César
bq.  
bq.


                
> 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
>
>
> 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