Report cancelled read command execution to coordinator as a RequestFailure.TIMEOUT

patch by Dmitry Konstantinov; reviewed by Sam Tunnicliffe for CASSANDRA-21468
This commit is contained in:
Dmitry Konstantinov 2026-06-18 11:12:44 +01:00
parent d1212e8017
commit d46b8a827a
2 changed files with 4 additions and 1 deletions

View File

@ -1,4 +1,5 @@
6.0-alpha2
* Report cancelled read command execution to coordinator as a RequestFailure.TIMEOUT (CASSANDRA-21468)
* Fix TCM log catchup from peer with snapshots and gaps in the log sequence (CASSANDRA-21455)
* Speed up nodetool doc generation by producing all command help in a single jvm (CASSANDRA-21444)
* Always send TCM commit failures as Messaging failures (CASSANDRA-21457)

View File

@ -2739,6 +2739,7 @@ public class StorageProxy implements StorageProxyMBean
protected void runMayThrow()
{
boolean cancelled = false;
try
{
MessageParams.reset();
@ -2765,6 +2766,7 @@ public class StorageProxy implements StorageProxyMBean
{
logger.debug("Query cancelled (timeout)", e);
response = null;
cancelled = true;
Preconditions.checkState(!command.isCompleted(), "Local read marked as completed despite being aborted by timeout to table %s", command.metadata());
}
@ -2776,7 +2778,7 @@ public class StorageProxy implements StorageProxyMBean
{
// We track latency based on request processing time
MessagingService.instance().metrics.recordSelfDroppedMessage(verb, MonotonicClock.Global.preciseTime.now() - requestTime.startedAtNanos(), NANOSECONDS);
handler.onFailure(FBUtilities.getBroadcastAddressAndPort(), RequestFailure.UNKNOWN);
handler.onFailure(FBUtilities.getBroadcastAddressAndPort(), cancelled ? RequestFailure.TIMEOUT : RequestFailure.UNKNOWN);
}
if (!readRejected)