HBASE-534 Double-assignment at SPLIT-time

git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@640625 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2008-03-24 22:42:14 +00:00
parent 65d961ae78
commit 46ff7775f6
4 changed files with 13 additions and 6 deletions

View File

@ -54,6 +54,7 @@ Hbase Change Log
files (Clint Morgan via Jim Kellerman)
HBASE-527 RegexpRowFilter does not work when there are columns from
multiple families (Clint Morgan via Jim Kellerman)
HBASE-534 Double-assignment at SPLIT-time
IMPROVEMENTS
HBASE-415 Rewrite leases to use DelayedBlockingQueue instead of polling

View File

@ -473,7 +473,12 @@ class RegionManager implements HConstants {
/** Set a region to unassigned */
public void setUnassigned(HRegionInfo info) {
unassignedRegions.put(info, ZERO_L);
synchronized(this.unassignedRegions) {
if (!this.unassignedRegions.containsKey(info) &&
!this.pendingRegions.contains(info.getRegionName())) {
this.unassignedRegions.put(info, ZERO_L);
}
}
}
/** Set a region to pending assignment */

View File

@ -409,7 +409,7 @@ class ServerManager implements HConstants {
HRegionInfo newRegionB = splitB.getRegionInfo();
master.regionManager.setUnassigned(newRegionB);
LOG.info("region " + region.getRegionName() + " split. New regions are: " +
LOG.info("Region " + region.getRegionName() + " split; new regions: " +
newRegionA.getRegionName() + ", " + newRegionB.getRegionName());
if (region.isMetaTable()) {
@ -418,7 +418,7 @@ class ServerManager implements HConstants {
master.regionManager.incrementNumMetaRegions();
}
}
/** Region server is reporting that a region is now opened */
private void processRegionOpen(String serverName, HServerInfo serverInfo,
HRegionInfo region, ArrayList<HMsg> returnMsgs)

View File

@ -783,9 +783,10 @@ public class HStore implements HConstants {
// Add info about which file threw exception. It may not be in the
// exception message so output a message here where we know the
// culprit.
LOG.warn("Failed with " + e.toString() + ": " + hsf.toString() +
(hsf.isReference() ? " " + hsf.getReference().toString() : "") +
" for " + this.storeName);
LOG.warn("Failed with " + e.toString() + ": HStoreFile=" +
hsf.toString() + (hsf.isReference()? ", Reference=" +
hsf.getReference().toString() : "") + " for Store=" +
this.storeName);
closeCompactionReaders(rdrs);
throw e;
}