You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2012/05/31 18:34:53 UTC
svn commit: r1344803 -
/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
Author: ramkrishna
Date: Thu May 31 16:34:53 2012
New Revision: 1344803
URL: http://svn.apache.org/viewvc?rev=1344803&view=rev
Log:
HBASE-6089 SSH and AM.joinCluster causes Concurrent Modification exception. (Rajesh)
Modified:
hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
Modified: hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1344803&r1=1344802&r2=1344803&view=diff
==============================================================================
--- hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Thu May 31 16:34:53 2012
@@ -387,18 +387,19 @@ public class AssignmentManager extends Z
}
// Run through all regions. If they are not assigned and not in RIT, then
// its a clean cluster startup, else its a failover.
- for (Map.Entry<HRegionInfo, ServerName> e: this.regions.entrySet()) {
- if (!e.getKey().isMetaTable()
- && e.getValue() != null) {
- LOG.debug("Found " + e + " out on cluster");
- this.failover = true;
- break;
- }
- if (nodes.contains(e.getKey().getEncodedName())) {
- LOG.debug("Found " + e.getKey().getRegionNameAsString() + " in RITs");
- // Could be a meta region.
- this.failover = true;
- break;
+ synchronized (this.regions) {
+ for (Map.Entry<HRegionInfo, ServerName> e : this.regions.entrySet()) {
+ if (!e.getKey().isMetaTable() && e.getValue() != null) {
+ LOG.debug("Found " + e + " out on cluster");
+ this.failover = true;
+ break;
+ }
+ if (nodes.contains(e.getKey().getEncodedName())) {
+ LOG.debug("Found " + e.getKey().getRegionNameAsString() + " in RITs");
+ // Could be a meta region.
+ this.failover = true;
+ break;
+ }
}
}
@@ -2416,8 +2417,10 @@ public class AssignmentManager extends Z
// add only if region not in disabled and enabling table
if (false == checkIfRegionBelongsToDisabled(regionInfo)
&& false == checkIfRegionsBelongsToEnabling(regionInfo)) {
- regions.put(regionInfo, regionLocation);
- addToServers(regionLocation, regionInfo);
+ synchronized (this.regions) {
+ regions.put(regionInfo, regionLocation);
+ addToServers(regionLocation, regionInfo);
+ }
}
addTheTablesInPartialState(this.disablingTables, this.enablingTables, regionInfo,
tableName);
@@ -3032,7 +3035,6 @@ public class AssignmentManager extends Z
* Run through remaining regionservers and unassign all catalog regions.
*/
void unassignCatalogRegions() {
- this.servers.entrySet();
synchronized (this.regions) {
for (Map.Entry<ServerName, Set<HRegionInfo>> e: this.servers.entrySet()) {
Set<HRegionInfo> regions = e.getValue();