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 19:05:59 UTC
svn commit: r1344816 - in
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master:
AssignmentManager.java HMaster.java MasterFileSystem.java
Author: ramkrishna
Date: Thu May 31 17:05:59 2012
New Revision: 1344816
URL: http://svn.apache.org/viewvc?rev=1344816&view=rev
Log:
HBASE-6089 SSH and AM.joinCluster causes Concurrent Modification exception. (Rajesh)
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java?rev=1344816&r1=1344815&r2=1344816&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java Thu May 31 17:05:59 2012
@@ -358,7 +358,6 @@ public class AssignmentManager extends Z
/**
* Called on startup.
* Figures whether a fresh cluster start of we are joining extant running cluster.
- * @param onlineServers onlined servers when master started
* @throws IOException
* @throws KeeperException
* @throws InterruptedException
@@ -426,17 +425,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;
+ }
}
}
@@ -2547,8 +2548,6 @@ public class AssignmentManager extends Z
* <p>
* Returns a map of servers that are not found to be online and the regions
* they were hosting.
- * @param onlineServers if one region's location belongs to onlineServers, it
- * doesn't need to be assigned.
* @return map of servers not online to their assigned regions, as stored
* in META
* @throws IOException
@@ -2624,8 +2623,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);
+ }
}
disablingOrEnabling = addTheTablesInPartialState(this.disablingTables,
this.enablingTables, regionInfo, tableName);
@@ -3366,7 +3367,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();
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1344816&r1=1344815&r2=1344816&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Thu May 31 17:05:59 2012
@@ -663,7 +663,6 @@ Server {
/**
* Override to change master's splitLogAfterStartup. Used testing
* @param mfs
- * @param onlineServers
*/
protected void splitLogAfterStartup(final MasterFileSystem mfs) {
mfs.splitLogAfterStartup();
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java?rev=1344816&r1=1344815&r2=1344816&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterFileSystem.java Thu May 31 17:05:59 2012
@@ -187,8 +187,6 @@ public class MasterFileSystem {
/**
* Inspect the log directory to recover any log file without
* an active region server.
- * @param onlineServers Set of online servers keyed by
- * {@link ServerName}
*/
void splitLogAfterStartup() {
boolean retrySplitting = !conf.getBoolean("hbase.hlog.split.skip.errors",