You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2014/05/28 19:34:23 UTC
git commit: HBASE-11218 Data loss in HBase standalone mode (Liu
Shaohui)
Repository: hbase
Updated Branches:
refs/heads/master af522d685 -> 78f7cd450
HBASE-11218 Data loss in HBase standalone mode (Liu Shaohui)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/78f7cd45
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/78f7cd45
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/78f7cd45
Branch: refs/heads/master
Commit: 78f7cd450fe7ad5ed4b4b9634c7499e65968476f
Parents: af522d6
Author: Michael Stack <st...@duboce.net>
Authored: Wed May 28 10:33:53 2014 -0700
Committer: Michael Stack <st...@duboce.net>
Committed: Wed May 28 10:34:10 2014 -0700
----------------------------------------------------------------------
.../java/org/apache/hadoop/hbase/fs/HFileSystem.java | 7 +++++++
.../hadoop/hbase/master/AssignmentListener.java | 1 -
.../hadoop/hbase/master/HMasterCommandLine.java | 2 ++
.../hadoop/hbase/zookeeper/MiniZooKeeperCluster.java | 13 +++++--------
.../org/apache/hadoop/hbase/HBaseTestingUtility.java | 14 ++++++++++++++
.../hbase/util/hbck/TestOfflineMetaRebuildBase.java | 4 ++--
.../hbase/util/hbck/TestOfflineMetaRebuildHole.java | 3 +--
.../util/hbck/TestOfflineMetaRebuildOverlap.java | 3 +--
8 files changed, 32 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
index 8178787..f8cf7b3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/fs/HFileSystem.java
@@ -81,6 +81,13 @@ public class HFileSystem extends FilterFileSystem {
this.useHBaseChecksum = useHBaseChecksum;
fs.initialize(getDefaultUri(conf), conf);
+
+ // disable checksum verification for local fileSystem, see HBASE-11218
+ if (fs instanceof LocalFileSystem) {
+ fs.setWriteChecksum(false);
+ fs.setVerifyChecksum(false);
+ }
+
addLocationsOrderInterceptor(conf);
// If hbase checksum verification is switched on, then create a new
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentListener.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentListener.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentListener.java
index 8680e19..9df5ccb 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentListener.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentListener.java
@@ -39,7 +39,6 @@ public interface AssignmentListener {
/**
* The region was closed on the region server.
* @param regionInfo The closed region.
- * @param serverName The remote servers name.
*/
void regionClosed(final HRegionInfo regionInfo);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
index 6aef257..01a1bf1 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMasterCommandLine.java
@@ -30,6 +30,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.hbase.CoordinatedStateManager;
import org.apache.hadoop.hbase.CoordinatedStateManagerFactory;
import org.apache.hadoop.hbase.MasterNotRunningException;
@@ -178,6 +179,7 @@ public class HMasterCommandLine extends ServerCommandLine {
}
conf.set(HConstants.ZOOKEEPER_CLIENT_PORT,
Integer.toString(clientPort));
+ conf.setInt(HConstants.ZK_SESSION_TIMEOUT, 10 *1000);
// Need to have the zk cluster shutdown when master is shutdown.
// Run a subclass that does the zk cluster shutdown on its way out.
LocalHBaseCluster cluster = new LocalHBaseCluster(conf, conf.getInt("hbase.masters", 1),
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
index aefd499..e32f0ea 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.java
@@ -151,7 +151,7 @@ public class MiniZooKeeperCluster {
// running all the ZK servers
for (int i = 0; i < numZooKeeperServers; i++) {
File dir = new File(baseDir, "zookeeper_"+i).getAbsoluteFile();
- recreateDir(dir);
+ createDir(dir);
int tickTimeToUse;
if (this.tickTime > 0) {
tickTimeToUse = this.tickTime;
@@ -201,14 +201,11 @@ public class MiniZooKeeperCluster {
return clientPort;
}
- private void recreateDir(File dir) throws IOException {
- if (dir.exists()) {
- if(!FileUtil.fullyDelete(dir)) {
- throw new IOException("Could not delete zk base directory: " + dir);
- }
- }
+ private void createDir(File dir) throws IOException {
try {
- dir.mkdirs();
+ if (!dir.exists()) {
+ dir.mkdirs();
+ }
} catch (SecurityException e) {
throw new IOException("creating dir: " + dir, e);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
index e9e5eb6..3824294 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
@@ -957,6 +957,20 @@ public class HBaseTestingUtility extends HBaseCommonTestingUtility {
miniClusterRunning = false;
LOG.info("Minicluster is down");
}
+
+ /**
+ * @return True if we removed the test dirs
+ * @throws IOException
+ */
+ @Override
+ public boolean cleanupTestDir() throws IOException {
+ boolean ret = super.cleanupTestDir();
+ if (deleteDir(this.clusterTestDir)) {
+ this.clusterTestDir = null;
+ return ret & true;
+ }
+ return false;
+ }
/**
* Shutdown HBase mini cluster. Does not shutdown zk or dfs if running.
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java
index 1a85bc5..7a075a6 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildBase.java
@@ -65,9 +65,9 @@ public class TestOfflineMetaRebuildBase extends OfflineMetaRebuildTestCore {
assertTrue(fsck.rebuildMeta(false));
// bring up the minicluster
- TEST_UTIL.startMiniZKCluster(); // tables seem enabled by default
+ TEST_UTIL.startMiniZKCluster();
TEST_UTIL.restartHBaseCluster(3);
-
+ TEST_UTIL.getHBaseAdmin().enableTable(table);
ZooKeeperWatcher zkw = HBaseTestingUtility.getZooKeeperWatcher(TEST_UTIL);
LOG.info("Waiting for no more RIT");
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java
index 9cf8516..a3225bd 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildHole.java
@@ -96,8 +96,7 @@ public class TestOfflineMetaRebuildHole extends OfflineMetaRebuildTestCore {
assertErrors(doFsck(conf, false), new ERROR_CODE[] {
ERROR_CODE.NOT_IN_META_OR_DEPLOYED,
ERROR_CODE.NOT_IN_META_OR_DEPLOYED,
- ERROR_CODE.NOT_IN_META_OR_DEPLOYED,
- ERROR_CODE.HOLE_IN_REGION_CHAIN});
+ ERROR_CODE.NOT_IN_META_OR_DEPLOYED});
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/78f7cd45/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java
index 34098ba..9a17948 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/hbck/TestOfflineMetaRebuildOverlap.java
@@ -107,8 +107,7 @@ public class TestOfflineMetaRebuildOverlap extends OfflineMetaRebuildTestCore {
ERROR_CODE.NOT_IN_META_OR_DEPLOYED,
ERROR_CODE.NOT_IN_META_OR_DEPLOYED,
ERROR_CODE.NOT_IN_META_OR_DEPLOYED,
- ERROR_CODE.NOT_IN_META_OR_DEPLOYED,
- ERROR_CODE.HOLE_IN_REGION_CHAIN});
+ ERROR_CODE.NOT_IN_META_OR_DEPLOYED});
}
}