From 291cbcccf6e472b455a9d3ef2602b68ae0b7797c Mon Sep 17 00:00:00 2001 From: Sam Tunnicliffe Date: Tue, 14 Jan 2025 17:02:05 +0000 Subject: [PATCH] Fix SimpleClient ability to release acquired capacity patch by Sam Tunnicliffe; reviewed by Dmitry Konstantinov, Mick Semb Wever for CASSANDRA-20202 --- CHANGES.txt | 1 + .../org/apache/cassandra/transport/CQLMessageHandler.java | 5 ----- src/java/org/apache/cassandra/transport/SimpleClient.java | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index c5ec1056c4..ae47440915 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.1.9 + * Fix SimpleClient ability to release acquired capacity (CASSANDRA-20202) * Fix WaitQueue.Signal.awaitUninterruptibly may block forever if invoking thread is interrupted (CASSANDRA-20084) Merged from 4.0: * Fix autocompletion for role names/user names (CASSANDRA-20175) diff --git a/src/java/org/apache/cassandra/transport/CQLMessageHandler.java b/src/java/org/apache/cassandra/transport/CQLMessageHandler.java index 792f6bf7b6..c2d0b42974 100644 --- a/src/java/org/apache/cassandra/transport/CQLMessageHandler.java +++ b/src/java/org/apache/cassandra/transport/CQLMessageHandler.java @@ -373,11 +373,6 @@ public class CQLMessageHandler extends AbstractMessageHandler return new Envelope(header, body); } - protected boolean processRequest(Envelope request) - { - return processRequest(request, Overload.NONE); - } - protected boolean processRequest(Envelope request, Overload backpressure) { M message = null; diff --git a/src/java/org/apache/cassandra/transport/SimpleClient.java b/src/java/org/apache/cassandra/transport/SimpleClient.java index a7227c89a5..504df79c98 100644 --- a/src/java/org/apache/cassandra/transport/SimpleClient.java +++ b/src/java/org/apache/cassandra/transport/SimpleClient.java @@ -518,9 +518,9 @@ public class SimpleClient implements Closeable errorHandler, ctx.channel().attr(Connection.attributeKey).get().isThrowOnOverload()) { - protected boolean processRequest(Envelope request) + protected boolean processRequest(Envelope request, Overload overload) { - boolean continueProcessing = super.processRequest(request); + boolean continueProcessing = super.processRequest(request, overload); releaseCapacity(Ints.checkedCast(request.header.bodySizeInBytes)); return continueProcessing; }