Skip to content

Commit 9f5f692

Browse files
committed
Fix tests
- Don't report request timeouts or cancellations to jvm stability inspector - Don't report `simple` Keyspace FastPathStrategy patch by Benedict; reviewed by David Capwell for CASSANDRA-20545
1 parent bc16318 commit 9f5f692

File tree

5 files changed

+19
-12
lines changed

5 files changed

+19
-12
lines changed

src/java/org/apache/cassandra/concurrent/ExecutionFailure.java

+5
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@
1919
package org.apache.cassandra.concurrent;
2020

2121
import java.util.concurrent.Callable;
22+
import java.util.concurrent.CancellationException;
2223
import java.util.concurrent.Future;
2324

2425
import org.apache.cassandra.concurrent.DebuggableTask.RunnableDebuggableTask;
2526
import org.slf4j.Logger;
2627
import org.slf4j.LoggerFactory;
2728

2829
import org.apache.cassandra.db.compaction.CompactionInterruptedException;
30+
import org.apache.cassandra.exceptions.RequestTimeoutException;
2931
import org.apache.cassandra.utils.Closeable;
3032
import org.apache.cassandra.utils.JVMStabilityInspector;
3133
import org.apache.cassandra.utils.WithResources;
@@ -49,6 +51,9 @@ public static void handle(Throwable t)
4951
{
5052
try
5153
{
54+
if (t instanceof RequestTimeoutException || t instanceof CancellationException)
55+
return;
56+
5257
if (t instanceof CompactionInterruptedException)
5358
{
5459
// TODO: should we check to see there aren't nested CompactionInterruptedException?

src/java/org/apache/cassandra/net/Verb.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ public enum Verb
338338
ACCORD_AWAIT_ASYNC_RSP_REQ (139, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(AwaitSerializers.asyncReply), AccordService::requestHandlerOrNoop ),
339339
ACCORD_WAIT_UNTIL_APPLIED_REQ (140, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(ReadDataSerializers.waitUntilApplied), AccordService::requestHandlerOrNoop, ACCORD_READ_RSP ),
340340
ACCORD_RECOVER_AWAIT_RSP (141, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(AwaitSerializers.recoverReply), AccordService::responseHandlerOrNoop ),
341-
ACCORD_RECOVER_AWAIT_REQ (142, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(AwaitSerializers.recoverRequest), AccordService::requestHandlerOrNoop, ACCORD_RECOVER_AWAIT_RSP),
341+
ACCORD_RECOVER_AWAIT_REQ (142, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(AwaitSerializers.recoverRequest), AccordService::requestHandlerOrNoop, ACCORD_RECOVER_AWAIT_RSP),
342342
ACCORD_INFORM_DURABLE_REQ (143, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(InformDurableSerializers.request), AccordService::requestHandlerOrNoop, ACCORD_SIMPLE_RSP ),
343343
ACCORD_CHECK_STATUS_RSP (144, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(CheckStatusSerializers.reply), AccordService::responseHandlerOrNoop ),
344344
ACCORD_CHECK_STATUS_REQ (145, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(CheckStatusSerializers.request), AccordService::requestHandlerOrNoop, ACCORD_CHECK_STATUS_RSP ),
@@ -350,15 +350,14 @@ public enum Verb
350350
ACCORD_GET_LATEST_DEPS_REQ (151, P2, readTimeout, IMMEDIATE, () -> accordEmbedded(LatestDepsSerializers.request), AccordService::requestHandlerOrNoop, ACCORD_GET_LATEST_DEPS_RSP),
351351
ACCORD_GET_MAX_CONFLICT_RSP (152, P2, readTimeout, IMMEDIATE, () -> accordEmbedded(GetMaxConflictSerializers.reply), AccordService::responseHandlerOrNoop ),
352352
ACCORD_GET_MAX_CONFLICT_REQ (153, P2, readTimeout, IMMEDIATE, () -> accordEmbedded(GetMaxConflictSerializers.request), AccordService::requestHandlerOrNoop, ACCORD_GET_MAX_CONFLICT_RSP),
353-
ACCORD_GET_DURABLE_BEFORE_RSP (154, P2, readTimeout, IMMEDIATE, () -> accordEmbedded(GetDurableBeforeSerializers.reply), AccordService::responseHandlerOrNoop ),
354-
ACCORD_GET_DURABLE_BEFORE_REQ (155, P2, readTimeout, IMMEDIATE, () -> accordEmbedded(GetDurableBeforeSerializers.request), AccordService::requestHandlerOrNoop, ACCORD_GET_DURABLE_BEFORE_RSP ),
353+
ACCORD_GET_DURABLE_BEFORE_RSP (154, P2, readTimeout, MISC, () -> accordEmbedded(GetDurableBeforeSerializers.reply), AccordService::responseHandlerOrNoop ),
354+
ACCORD_GET_DURABLE_BEFORE_REQ (155, P2, readTimeout, MISC, () -> accordEmbedded(GetDurableBeforeSerializers.request), AccordService::requestHandlerOrNoop, ACCORD_GET_DURABLE_BEFORE_RSP ),
355355
ACCORD_SET_SHARD_DURABLE_REQ (156, P2, rpcTimeout, MISC, () -> accordEmbedded(SetDurableSerializers.shardDurable), AccordService::requestHandlerOrNoop, ACCORD_SIMPLE_RSP ),
356356
ACCORD_SET_GLOBALLY_DURABLE_REQ (157, P2, rpcTimeout, MISC, () -> accordEmbedded(SetDurableSerializers.globallyDurable),AccordService::requestHandlerOrNoop, ACCORD_SIMPLE_RSP ),
357357

358358
ACCORD_SYNC_NOTIFY_RSP (158, P2, writeTimeout, MISC, () -> accordEmbedded(EnumSerializer.simpleReply), RESPONSE_HANDLER),
359359
ACCORD_SYNC_NOTIFY_REQ (159, P2, writeTimeout, MISC, () -> accordEmbedded(Notification.serializer), () -> AccordSyncPropagator.verbHandler, ACCORD_SYNC_NOTIFY_RSP ),
360360

361-
362361
CONSENSUS_KEY_MIGRATION (160, P1, writeTimeout, MISC, () -> accordEmbedded(ConsensusKeyMigrationFinished.serializer),() -> ConsensusKeyMigrationState.consensusKeyMigrationFinishedHandler),
363362

364363
ACCORD_INTEROP_READ_RSP (161, P2, writeTimeout, IMMEDIATE, () -> accordEmbedded(AccordInteropRead.replySerializer), AccordService::responseHandlerOrNoop),

src/java/org/apache/cassandra/schema/KeyspaceMetadata.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import org.apache.cassandra.io.util.DataOutputPlus;
4444
import org.apache.cassandra.locator.AbstractReplicationStrategy;
4545
import org.apache.cassandra.schema.UserFunctions.FunctionsDiff;
46+
import org.apache.cassandra.service.accord.fastpath.FastPathStrategy;
4647
import org.apache.cassandra.tcm.ClusterMetadata;
4748
import org.apache.cassandra.tcm.serialization.MetadataSerializer;
4849
import org.apache.cassandra.tcm.serialization.Version;
@@ -367,7 +368,7 @@ public String toCqlString(boolean withWarnings, boolean withInternals, boolean i
367368
builder.append(" AND durable_writes = ")
368369
.append(params.durableWrites);
369370

370-
if (params.fastPath != null)
371+
if (params.fastPath != null && params.fastPath != FastPathStrategy.simple())
371372
{
372373
builder.append(" AND fast_path = '")
373374
.append(toLowerCaseLocalized(params.fastPath.toString()))

src/java/org/apache/cassandra/service/accord/api/AccordAgent.java

+4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
package org.apache.cassandra.service.accord.api;
2020

21+
import java.util.concurrent.CancellationException;
2122
import java.util.concurrent.TimeUnit;
2223
import java.util.function.BiConsumer;
2324

@@ -59,6 +60,7 @@
5960
import accord.utils.async.AsyncResult;
6061
import accord.utils.async.AsyncResults;
6162
import org.apache.cassandra.config.DatabaseDescriptor;
63+
import org.apache.cassandra.exceptions.RequestTimeoutException;
6264
import org.apache.cassandra.metrics.AccordMetrics;
6365
import org.apache.cassandra.net.ResponseContext;
6466
import org.apache.cassandra.service.accord.AccordService;
@@ -142,6 +144,8 @@ public void onStale(Timestamp staleSince, Ranges ranges)
142144
@Override
143145
public void onUncaughtException(Throwable t)
144146
{
147+
if (t instanceof RequestTimeoutException || t instanceof CancellationException)
148+
return;
145149
logger.error("Uncaught accord exception", t);
146150
JVMStabilityInspector.uncaughtException(Thread.currentThread(), t);
147151
}

test/unit/org/apache/cassandra/cql3/statements/DescribeStatementTest.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -291,11 +291,11 @@ public void testDescribe() throws Throwable
291291
row(KEYSPACE, "keyspace", KEYSPACE,
292292
"CREATE KEYSPACE " + KEYSPACE +
293293
" WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}" +
294-
" AND durable_writes = true AND fast_path = 'simple';"),
294+
" AND durable_writes = true;"),
295295
row(KEYSPACE_PER_TEST, "keyspace", KEYSPACE_PER_TEST,
296296
"CREATE KEYSPACE " + KEYSPACE_PER_TEST +
297297
" WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}" +
298-
" AND durable_writes = true AND fast_path = 'simple';"),
298+
" AND durable_writes = true;"),
299299
row("test", "keyspace", "test", keyspaceOutput()),
300300
row("test", "table", "has_all_types", allTypesTable()),
301301
row("test", "table", "\"Test\"", testTableOutput()),
@@ -697,8 +697,7 @@ public void testDescribeTypes() throws Throwable
697697
assertRowsNet(executeDescribeNet(KEYSPACE_PER_TEST, "DESCRIBE KEYSPACE " + KEYSPACE_PER_TEST),
698698
row(KEYSPACE_PER_TEST, "keyspace", KEYSPACE_PER_TEST, "CREATE KEYSPACE " + KEYSPACE_PER_TEST +
699699
" WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}" +
700-
" AND durable_writes = true" +
701-
" AND fast_path = 'simple';"),
700+
" AND durable_writes = true;"),
702701
row(KEYSPACE_PER_TEST, "type", type2, "CREATE TYPE " + KEYSPACE_PER_TEST + "." + type2 + " (\n" +
703702
" x text,\n" +
704703
" y text\n" +
@@ -803,8 +802,7 @@ public void testDescribeWithCustomIndex() throws Throwable
803802

804803
String expectedKeyspaceStmt = "CREATE KEYSPACE " + KEYSPACE_PER_TEST +
805804
" WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}" +
806-
" AND durable_writes = true" +
807-
" AND fast_path = 'simple';";
805+
" AND durable_writes = true;";
808806

809807
String expectedTableStmt = "CREATE TABLE " + KEYSPACE_PER_TEST + "." + table + " (\n" +
810808
" id int PRIMARY KEY,\n" +
@@ -1175,7 +1173,7 @@ private static String mvParametersCql()
11751173

11761174
private static String keyspaceOutput()
11771175
{
1178-
return "CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true AND fast_path = 'simple';";
1176+
return "CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true;";
11791177
}
11801178

11811179
private void describeError(String cql, String msg) throws Throwable

0 commit comments

Comments
 (0)