Merge branch 'cassandra-6.0' into trunk

* cassandra-6.0:
  Report cancelled read command execution to coordinator as a RequestFailure.TIMEOUT
This commit is contained in:
Dmitry Konstantinov 2026-06-20 15:03:03 +01:00
commit 961f813dac
2 changed files with 4 additions and 1 deletions

View File

@ -3,6 +3,7 @@
* Allow nodetool garbagecollect to take a user defined list of SSTables (CASSANDRA-16767) * Allow nodetool garbagecollect to take a user defined list of SSTables (CASSANDRA-16767)
* Add a guardrail for misprepared statements (CASSANDRA-21139) * Add a guardrail for misprepared statements (CASSANDRA-21139)
Merged from 6.0: Merged from 6.0:
* Report cancelled read command execution to coordinator as a RequestFailure.TIMEOUT (CASSANDRA-21468)
* Add policy for selecting CMS host when submitting commit request (CASSANDRA-21456) * Add policy for selecting CMS host when submitting commit request (CASSANDRA-21456)
* Fix TCM log catchup from peer with snapshots and gaps in the log sequence (CASSANDRA-21455) * 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) * Speed up nodetool doc generation by producing all command help in a single jvm (CASSANDRA-21444)

View File

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