Skip to content

Commit

Permalink
STAR-1069 Use JVMKiller interface in JVMStabilityInspector to allow o…
Browse files Browse the repository at this point in the history
…ther implementations. (apache#324)

(cherry picked from commit e9a789a)
  • Loading branch information
djatnieks authored and jacek-lewandowski committed Mar 9, 2022
1 parent f69b97a commit fec7ed2
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
public final class JVMStabilityInspector
{
private static final Logger logger = LoggerFactory.getLogger(JVMStabilityInspector.class);
private static Killer killer = new Killer();
private static JVMKiller killer = new Killer();

private static Object lock = new Object();
private static boolean printingHeapHistogram;
Expand Down Expand Up @@ -246,14 +246,14 @@ public static void removeShutdownHooks()
}

@VisibleForTesting
public static Killer replaceKiller(Killer newKiller)
public static JVMKiller replaceKiller(JVMKiller newKiller)
{
Killer oldKiller = JVMStabilityInspector.killer;
JVMKiller oldKiller = JVMStabilityInspector.killer;
JVMStabilityInspector.killer = newKiller;
return oldKiller;
}

public static Killer killer()
public static JVMKiller killer()
{
return killer;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@

package org.apache.cassandra.cql3;

import java.io.IOError;
import java.util.concurrent.TimeUnit;

import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
Expand All @@ -32,10 +29,10 @@
import org.apache.cassandra.service.CassandraDaemon;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;
import org.assertj.core.api.Assertions;
import org.awaitility.Awaitility;
import org.jboss.byteman.contrib.bmunit.BMRule;
import org.jboss.byteman.contrib.bmunit.BMUnitRunner;

Expand Down Expand Up @@ -155,7 +152,7 @@ private void flush4SstablesAndEnableAutoCompaction(Config.DiskFailurePolicy poli
execute("INSERT INTO %s (k, c, v) VALUES (?, ?, ?)", 0, 4, 4);
cfs.forceBlockingFlush(ColumnFamilyStore.FlushReason.UNIT_TESTS);

JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(new KillerForTests());
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(new KillerForTests());
Config.DiskFailurePolicy originalPolicy = DatabaseDescriptor.getDiskFailurePolicy();
try
{
Expand Down
3 changes: 2 additions & 1 deletion test/unit/org/apache/cassandra/cql3/OutOfSpaceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.apache.cassandra.gms.Gossiper;
import org.apache.cassandra.io.FSWriteError;
import org.apache.cassandra.schema.TableId;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;

Expand All @@ -50,7 +51,7 @@ public void testFlushUnwriteableDie() throws Throwable
makeTable();

KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
DiskFailurePolicy oldPolicy = DatabaseDescriptor.getDiskFailurePolicy();
try (Closeable c = Util.markDirectoriesUnwriteable(getCurrentColumnFamilyStore()))
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.config.Config;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.commitlog.CommitLog;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.gms.Gossiper;
import org.apache.cassandra.service.CassandraDaemon;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;

Expand Down Expand Up @@ -74,7 +74,7 @@ public void testCommitFailurePolicy_die()
StorageService.instance.registerDaemon(daemon);

KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
Config.CommitFailurePolicy oldPolicy = DatabaseDescriptor.getCommitFailurePolicy();
try
{
Expand All @@ -98,7 +98,7 @@ public void testCommitFailurePolicy_ignore_beforeStartup()
StorageService.instance.registerDaemon(daemon);

KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
Config.CommitFailurePolicy oldPolicy = DatabaseDescriptor.getCommitFailurePolicy();
try
{
Expand All @@ -123,7 +123,7 @@ public void testCommitFailurePolicy_ignore_afterStartup() throws Exception
StorageService.instance.registerDaemon(daemon);

KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
Config.CommitFailurePolicy oldPolicy = DatabaseDescriptor.getCommitFailurePolicy();
try
{
Expand All @@ -147,7 +147,7 @@ public void testCommitFailurePolicy_fail_writes()
StorageService.instance.registerDaemon(daemon);

KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
Config.CommitFailurePolicy oldPolicy = DatabaseDescriptor.getCommitFailurePolicy();
try
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import org.apache.cassandra.schema.TableMetadata;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;
import org.jboss.byteman.contrib.bmunit.BMRule;
Expand All @@ -68,7 +69,7 @@ public class CommitLogPolicyBytemanTest
protected static final String STANDARD = "Standard";
private static final String CUSTOM = "Custom";

private static JVMStabilityInspector.Killer oldKiller;
private static JVMKiller oldKiller;
private static KillerForTests testKiller;
private static Config.CommitFailurePolicy oldPolicy;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.Hex;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;
import org.apache.cassandra.utils.Pair;
Expand Down Expand Up @@ -124,7 +125,7 @@ public abstract class CommitLogTest
private static final String STANDARD2 = "Standard2";
private static final String CUSTOM1 = "Custom1";

private static JVMStabilityInspector.Killer oldKiller;
private static JVMKiller oldKiller;
private static KillerForTests testKiller;

public CommitLogTest(ParameterizedClass commitLogCompression, EncryptionContext encryptionContext)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
import org.apache.cassandra.schema.TableMetadata;
import org.apache.cassandra.schema.Tables;
import org.apache.cassandra.security.EncryptionContextGenerator;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;

Expand All @@ -75,7 +76,7 @@ public class CommitLogUpgradeTest
static final String KEYSPACE = "Keyspace1";
static final String CELLNAME = "name";

private JVMStabilityInspector.Killer originalKiller;
private JVMKiller originalKiller;
private KillerForTests killerForTests;
private boolean shouldBeKilled = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

import java.io.FileNotFoundException;
import java.net.SocketException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
Expand All @@ -44,6 +43,7 @@
import org.apache.cassandra.io.sstable.format.SSTableReader;
import org.apache.cassandra.notifications.SSTableAddedNotification;
import org.apache.cassandra.schema.IndexMetadata;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;
import org.apache.cassandra.utils.concurrent.Refs;
Expand Down Expand Up @@ -602,7 +602,7 @@ public void handleJVMStablityOnFailedCreate()
private void handleJVMStablityOnFailedCreate(Throwable throwable, boolean shouldKillJVM)
{
KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);

try
{
Expand Down Expand Up @@ -643,7 +643,7 @@ private void handleJVMStablityOnFailedRebuild(Throwable throwable, boolean shoul
waitForIndex(KEYSPACE, tableName, indexName);

KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);

try
{
Expand Down
3 changes: 2 additions & 1 deletion test/unit/org/apache/cassandra/net/ResourceLimitsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import java.util.function.LongFunction;

import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.utils.JVMKiller;
import org.apache.cassandra.utils.JVMStabilityInspector;
import org.apache.cassandra.utils.KillerForTests;
import org.junit.Assert;
Expand Down Expand Up @@ -159,7 +160,7 @@ public void negativeConcurrentUsingValueKillsJVMTest()
{
DatabaseDescriptor.daemonInitialization(); // Prevent NPE for DatabaseDescriptor.getDiskFailurePolicy
KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
try
{
Concurrent concurrent = new Concurrent(1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public static void initDD()
public void testKill() throws Exception
{
KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);

Config.DiskFailurePolicy oldPolicy = DatabaseDescriptor.getDiskFailurePolicy();
Config.CommitFailurePolicy oldCommitPolicy = DatabaseDescriptor.getCommitFailurePolicy();
Expand Down Expand Up @@ -129,7 +129,7 @@ public void testForceHeapSpaceOom()
public void fileHandleTest()
{
KillerForTests killerForTests = new KillerForTests();
JVMStabilityInspector.Killer originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);
JVMKiller originalKiller = JVMStabilityInspector.replaceKiller(killerForTests);

try
{
Expand Down

0 comments on commit fec7ed2

Please sign in to comment.