You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2015/01/08 20:02:51 UTC
cassandra git commit: Prevent CommitLogTest failures from cascading
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.0 ad3753309 -> 5e797ebba
Prevent CommitLogTest failures from cascading
Patch by Bogdan Kanivets; reviewed by jmckenzie for CASSANDRA-7713
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5e797ebb
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5e797ebb
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5e797ebb
Branch: refs/heads/cassandra-2.0
Commit: 5e797ebbad60fee3d7c3686de23d68d7611611a0
Parents: ad37533
Author: Bogdan Kanivets <bk...@gmail.com>
Authored: Thu Jan 8 12:56:46 2015 -0600
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Thu Jan 8 12:56:46 2015 -0600
----------------------------------------------------------------------
.../cassandra/db/commitlog/CommitLog.java | 4 ++-
.../org/apache/cassandra/db/CommitLogTest.java | 31 ++++++++------------
2 files changed, 16 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e797ebb/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
index 0e2f5bf..7a27653 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
@@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
import javax.management.MBeanServer;
import javax.management.ObjectName;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.util.concurrent.Uninterruptibles;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -378,7 +379,8 @@ public class CommitLog implements CommitLogMBean
}
}
- static boolean handleCommitError(String message, Throwable t)
+ @VisibleForTesting
+ public static boolean handleCommitError(String message, Throwable t)
{
switch (DatabaseDescriptor.getCommitFailurePolicy())
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5e797ebb/test/unit/org/apache/cassandra/db/CommitLogTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/CommitLogTest.java b/test/unit/org/apache/cassandra/db/CommitLogTest.java
index 9f5a7b2..38c192d 100644
--- a/test/unit/org/apache/cassandra/db/CommitLogTest.java
+++ b/test/unit/org/apache/cassandra/db/CommitLogTest.java
@@ -39,6 +39,8 @@ import org.apache.cassandra.db.commitlog.CommitLog;
import org.apache.cassandra.db.commitlog.CommitLogDescriptor;
import org.apache.cassandra.db.commitlog.ReplayPosition;
import org.apache.cassandra.db.filter.NamesQueryFilter;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.gms.Gossiper;
import org.apache.cassandra.net.MessagingService;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.ByteBufferUtil;
@@ -219,7 +221,7 @@ public class CommitLogTest extends SchemaLoader
CommitLog.instance.recover(new File[]{ logFile }); //CASSANDRA-1119 / CASSANDRA-1179 throw on failure*/
}
}
-
+
@Test
public void testVersions()
{
@@ -235,34 +237,27 @@ public class CommitLogTest extends SchemaLoader
String newCLName = "CommitLog-" + CommitLogDescriptor.current_version + "-1340512736956320000.log";
Assert.assertEquals(MessagingService.current_version, CommitLogDescriptor.fromFileName(newCLName).getMessagingVersion());
}
-/*
+
@Test
- public void testCommitFailurePolicy_stop()
+ public void testCommitFailurePolicy_stop() throws ConfigurationException
{
- File commitDir = new File(DatabaseDescriptor.getCommitLogLocation());
+ // Need storage service active so stop policy can shutdown gossip
+ StorageService.instance.initServer();
+ Assert.assertTrue(Gossiper.instance.isEnabled());
+ Config.CommitFailurePolicy oldPolicy = DatabaseDescriptor.getCommitFailurePolicy();
try
{
-
DatabaseDescriptor.setCommitFailurePolicy(Config.CommitFailurePolicy.stop);
- commitDir.setWritable(false);
- RowMutation rm = new RowMutation("Keyspace1", bytes("k"));
- rm.add("Standard1", bytes("c1"), ByteBuffer.allocate(100), 0);
-
- // Adding it twice (won't change segment)
- CommitLog.instance.add(rm);
- Uninterruptibles.sleepUninterruptibly((int) DatabaseDescriptor.getCommitLogSyncBatchWindow(), TimeUnit.MILLISECONDS);
- Assert.assertFalse(StorageService.instance.isRPCServerRunning());
- Assert.assertFalse(StorageService.instance.isNativeTransportRunning());
- Assert.assertFalse(StorageService.instance.isInitialized());
-
+ CommitLog.handleCommitError("Test stop error", new Throwable());
+ Assert.assertFalse(Gossiper.instance.isEnabled());
}
finally
{
- commitDir.setWritable(true);
+ DatabaseDescriptor.setCommitFailurePolicy(oldPolicy);
}
}
-*/
+
@Test
public void testTruncateWithoutSnapshot() throws ExecutionException, InterruptedException
{