[
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