From db0871ce8b82763c934ca88428589ecb00cd882a Mon Sep 17 00:00:00 2001 From: Edward Date: Fri, 10 Jul 2026 18:15:23 +0100 Subject: [PATCH] Don't increment client metrics on messaging service connection unpause patch by Edward Chu; reviewed by Aleksey Yeschenko for CASSANDRA-21491 --- CHANGES.txt | 1 + .../org/apache/cassandra/net/AbstractMessageHandler.java | 7 +++++-- .../org/apache/cassandra/transport/CQLMessageHandler.java | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index d2bf6142c9..2ba83fed8b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 7.0 + * Don't increment client metrics on messaging service connection unpause (CASSANDRA-21491) * Add nodetool getreplicas (CASSANDRA-17665) * Implementation of CEP-49: Hardware-accelerated compression (CASSANDRA-20975) * Avoid using ObjectUtils.getFirstNonNull in Schema (CASSANDRA-21394) diff --git a/src/java/org/apache/cassandra/net/AbstractMessageHandler.java b/src/java/org/apache/cassandra/net/AbstractMessageHandler.java index 0ef03990fd..abbd5c77b9 100644 --- a/src/java/org/apache/cassandra/net/AbstractMessageHandler.java +++ b/src/java/org/apache/cassandra/net/AbstractMessageHandler.java @@ -31,7 +31,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.concurrent.ManyToOneConcurrentLinkedQueue; -import org.apache.cassandra.metrics.ClientMetrics; import org.apache.cassandra.net.FrameDecoder.CorruptFrame; import org.apache.cassandra.net.FrameDecoder.Frame; import org.apache.cassandra.net.FrameDecoder.FrameProcessor; @@ -314,7 +313,7 @@ public abstract class AbstractMessageHandler extends ChannelInboundHandlerAdapte decoder.reactivate(); if (decoder.isActive()) - ClientMetrics.instance.unpauseConnection(); + onConnectionUnpaused(); } } catch (Throwable t) @@ -323,6 +322,10 @@ public abstract class AbstractMessageHandler extends ChannelInboundHandlerAdapte } } + protected void onConnectionUnpaused() + { + } + protected abstract void fatalExceptionCaught(Throwable t); // return true if the handler should be reactivated - if no new hurdles were encountered, diff --git a/src/java/org/apache/cassandra/transport/CQLMessageHandler.java b/src/java/org/apache/cassandra/transport/CQLMessageHandler.java index 2486497c2f..2f764660a8 100644 --- a/src/java/org/apache/cassandra/transport/CQLMessageHandler.java +++ b/src/java/org/apache/cassandra/transport/CQLMessageHandler.java @@ -159,6 +159,12 @@ public class CQLMessageHandler extends AbstractMessageHandler return super.process(frame); } + @Override + protected void onConnectionUnpaused() + { + ClientMetrics.instance.unpauseConnection(); + } + /** * Checks limits on bytes in flight and the request rate limiter (if enabled), then takes one of three actions: *