You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Purtell (Issue Comment Edited) (JIRA)" <ji...@apache.org> on 2011/11/21 19:48:51 UTC

[jira] [Issue Comment Edited] (HBASE-4835) ConcurrentModificationException out of ZKConfig.makeZKProps

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

Andrew Purtell edited comment on HBASE-4835 at 11/21/11 6:48 PM:
-----------------------------------------------------------------

Or synchronize access to the Configuration object in makeZKProps, in addition to cloning the Configuration in the constructor. Can also consider heavy handed synchronization of every read or mutation of it in o.a.h.h.zookeeper just to be sure.

The concern I have about cloning in makeZKProps is the same hashmap iteration will happen for that. 
                
      was (Author: apurtell):
    Or synchronize access to the Configuration object in makeZKProps
                  
> ConcurrentModificationException out of ZKConfig.makeZKProps
> -----------------------------------------------------------
>
>                 Key: HBASE-4835
>                 URL: https://issues.apache.org/jira/browse/HBASE-4835
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>         Attachments: HBASE-4835.patch
>
>
> Mikhail reported this from a five-node, three-RS cluster test:
> {code}
> 2011-11-21 01:30:15,188 FATAL org.apache.hadoop.hbase.regionserver.HRegionServer: ABORTING region server <machine_name>,60020,1321867814890: Initialization of RS failed. Hence aborting RS.
> java.util.ConcurrentModificationException
> at java.util.Hashtable$Enumerator.next(Hashtable.java:1031)
> at org.apache.hadoop.conf.Configuration.iterator(Configuration.java:1042)
> at org.apache.hadoop.hbase.zookeeper.ZKConfig.makeZKProps(ZKConfig.java:75)
> at org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:245)
> at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:144)
> at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:124)
> at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:1262)
> at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:568)
> at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:559)
> at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:183)
> at org.apache.hadoop.hbase.catalog.CatalogTracker.<init>(CatalogTracker.java:177)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.initializeZooKeeper(HRegionServer.java:575)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.preRegistrationInitialization(HRegionServer.java:534)
> at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:642)
> at java.lang.Thread.run(Thread.java:619)
> {code}

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