From ede005168ab4ed97b51be652e24e142ecb3bf6e2 Mon Sep 17 00:00:00 2001 From: Mike Drob Date: Thu, 7 Dec 2017 13:59:30 -0600 Subject: [PATCH] HBASE-19289 Add flag to disable stream capability enforcement --- .../apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java | 3 ++- .../java/org/apache/hadoop/hbase/procedure2/TestChildProcedures.java | 1 + .../java/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.java | 1 + .../org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java | 1 + .../java/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.java | 1 - .../java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java | 1 + .../java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java | 1 + .../java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java | 1 + .../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java | 1 + .../java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java | 1 + .../hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java | 1 + 11 files changed, 11 insertions(+), 2 deletions(-) diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java index f49833c77b..fe596d68c0 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.java @@ -1029,7 +1029,8 @@ public class WALProcedureStore extends ProcedureStoreBase { // to provide. final String durability = useHsync ? "hsync" : "hflush"; if (!(CommonFSUtils.hasCapability(newStream, durability))) { - throw new IllegalStateException("The procedure WAL relies on the ability to " + durability + + if (fs.getConf().getBoolean("hbase.stream.capability.enforce", true)) + throw new IllegalStateException("The procedure WAL relies on the ability to " + durability + " for proper operation during component failures, but the underlying filesystem does " + "not support doing so. Please check the config value of '" + USE_HSYNC_CONF_KEY + "' to set the desired level of robustness and ensure the config value of '" + diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestChildProcedures.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestChildProcedures.java index 4c1611a6c5..e28bcb5979 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestChildProcedures.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestChildProcedures.java @@ -54,6 +54,7 @@ public class TestChildProcedures { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); assertTrue(testDir.depth() > 1); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.java index d2b2b7d54d..5b6eacf3e2 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureEvents.java @@ -55,6 +55,7 @@ public class TestProcedureEvents { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); Path testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); logDir = new Path(testDir, "proc-logs"); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java index ed6d512df7..d2b355c8a9 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecution.java @@ -58,6 +58,7 @@ public class TestProcedureExecution { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); assertTrue(testDir.depth() > 1); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.java index 289987be8b..da63f3f79a 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureExecutor.java @@ -25,7 +25,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseCommonTestingUtility; -import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility; import org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.NoopProcedure; import org.apache.hadoop.hbase.procedure2.store.NoopProcedureStore; import org.apache.hadoop.hbase.testclassification.SmallTests; diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java index 6246629ef9..b6c05c810d 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureMetrics.java @@ -60,6 +60,7 @@ public class TestProcedureMetrics { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); assertTrue(testDir.depth() > 1); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java index 12a8012ef8..eb5e38444f 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureNonce.java @@ -61,6 +61,7 @@ public class TestProcedureNonce { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); Path testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); assertTrue(testDir.depth() > 1); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java index 06f8833a58..b7534174d2 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.java @@ -63,6 +63,7 @@ public class TestProcedureRecovery { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); assertTrue(testDir.depth() > 1); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java index cbe50f2c2d..0ca1e7852f 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.java @@ -72,6 +72,7 @@ public class TestStateMachineProcedure { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java index 017992cfea..2a432aa04a 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestYieldProcedures.java @@ -60,6 +60,7 @@ public class TestYieldProcedures { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); assertTrue(testDir.depth() > 1); diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java index 98b1b7c9d6..13e8fa25f6 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.java @@ -80,6 +80,7 @@ public class TestWALProcedureStore { @Before public void setUp() throws IOException { htu = new HBaseCommonTestingUtility(); + htu.getConfiguration().setBoolean("hbase.stream.capability.enforce", false); testDir = htu.getDataTestDir(); fs = testDir.getFileSystem(htu.getConfiguration()); assertTrue(testDir.depth() > 1); -- 2.15.0