Updated Branches: refs/heads/trunk 8e003d842 -> 377da747b
Expire entries out of ThriftSessionManager patch by jasobrown; reviewed by jbellis for CASSANDRA-5719 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cc9ac827 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cc9ac827 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cc9ac827 Branch: refs/heads/trunk Commit: cc9ac8277db09058823d7b9599219324e49e9f51 Parents: 56c9d2f Author: Jason Brown <[email protected]> Authored: Wed Jul 3 04:38:12 2013 -0700 Committer: Jason Brown <[email protected]> Committed: Fri Jul 5 21:56:42 2013 -0700 ---------------------------------------------------------------------- CHANGES.txt | 2 +- src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java | 6 +++++- .../cassandra/thrift/TCustomNonblockingServerSocket.java | 2 -- src/java/org/apache/cassandra/thrift/ThriftSessionManager.java | 6 ++++++ 4 files changed, 12 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cc9ac827/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 843bb53..fa4df36 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -6,7 +6,7 @@ * Race condition in detecting version on a mixed 1.1/1.2 cluster (CASSANDRA-5692) * Fix skipping range tombstones with reverse queries (CASSANDRA-5712) - + * Expire entries out of ThriftSessionManager (CASSANRDA-5719) 1.2.6 * Fix tracing when operation completes before all responses arrive http://git-wip-us.apache.org/repos/asf/cassandra/blob/cc9ac827/src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java b/src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java index a199a27..7b9a563 100644 --- a/src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java +++ b/src/java/org/apache/cassandra/thrift/CustomTHsHaServer.java @@ -314,8 +314,12 @@ public class CustomTHsHaServer extends TNonblockingServer { FrameBuffer buffer = (FrameBuffer) key.attachment(); if (buffer != null) + { buffer.close(); - // cancel the selection key + TNonblockingSocket socket = (TNonblockingSocket) buffer.trans_; + if (socket != null) + ThriftSessionManager.instance.connectionComplete(socket.getSocketChannel().socket().getRemoteSocketAddress()); + } key.cancel(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/cc9ac827/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java b/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java index 779084a..63466b8 100644 --- a/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java +++ b/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java @@ -49,8 +49,6 @@ public class TCustomNonblockingServerSocket extends TNonblockingServerSocket if (tsocket == null || tsocket.getSocketChannel() == null) return tsocket; Socket socket = tsocket.getSocketChannel().socket(); - // Any existing connection we had from this remote socket must be done now, so reset it - ThriftSessionManager.instance.connectionComplete(socket.getRemoteSocketAddress()); try { socket.setKeepAlive(this.keepAlive); http://git-wip-us.apache.org/repos/asf/cassandra/blob/cc9ac827/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java b/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java index 93d58ed..bbc4bff 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java +++ b/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java @@ -21,6 +21,9 @@ import java.net.SocketAddress; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Encapsulates the current client state (session). * @@ -29,6 +32,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class ThriftSessionManager { + private static final Logger logger = LoggerFactory.getLogger(ThriftSessionManager.class); public final static ThriftSessionManager instance = new ThriftSessionManager(); private final ThreadLocal<SocketAddress> remoteSocket = new ThreadLocal<SocketAddress>(); @@ -66,5 +70,7 @@ public class ThriftSessionManager { assert socket != null; activeSocketSessions.remove(socket); + if (logger.isTraceEnabled()) + logger.trace("ClientState removed for socket addr {}", socket); } }
