You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ja...@apache.org on 2014/04/09 01:10:30 UTC

git commit: Non-droppable verbs shouldn't be dropped from OTC

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-1.2 97a6e36bc -> d41c07572


Non-droppable verbs shouldn't be dropped from OTC

patch by jasobrown; reviewed by Richard Low for CASSANDRA-6980


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d41c0757
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d41c0757
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d41c0757

Branch: refs/heads/cassandra-1.2
Commit: d41c075721428b4beece0d8b22086a8017664280
Parents: 97a6e36
Author: Jason Brown <ja...@apple.com>
Authored: Tue Apr 8 16:08:19 2014 -0700
Committer: Jason Brown <ja...@apple.com>
Committed: Tue Apr 8 16:08:19 2014 -0700

----------------------------------------------------------------------
 CHANGES.txt                                             |  1 +
 .../org/apache/cassandra/net/OutboundTcpConnection.java | 12 ++++++++++--
 2 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d41c0757/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index dc8e6e0..b3e5310 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,7 @@
    (CASSANDRA-6822)
  * Continue assassinating even if the endpoint vanishes (CASSANDRA-6787)
  * Schedule schema pulls on change (CASSANDRA-6971)
+ * Non-droppable verbs shouldn't be dropped from OTC (CASSANDRA-6980)
 
 
 1.2.16

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d41c0757/src/java/org/apache/cassandra/net/OutboundTcpConnection.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java
index 9989221..bbd3924 100644
--- a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java
+++ b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java
@@ -142,7 +142,7 @@ public class OutboundTcpConnection extends Thread
                     break;
                 continue;
             }
-            if (qm.timestamp < System.currentTimeMillis() - m.getTimeout())
+            if (qm.isTimedOut(m.getTimeout()))
                 dropped.incrementAndGet();
             else if (socket != null || connect())
                 writeConnected(qm);
@@ -474,17 +474,25 @@ public class OutboundTcpConnection extends Thread
         final MessageOut<?> message;
         final String id;
         final long timestamp;
+        final boolean droppable;
 
         QueuedMessage(MessageOut<?> message, String id)
         {
             this.message = message;
             this.id = id;
             this.timestamp = System.currentTimeMillis();
+            this.droppable = MessagingService.DROPPABLE_VERBS.contains(message.verb);
+        }
+
+        /** don't drop a non-droppable message just because it's timestamp is expired */
+        boolean isTimedOut(long maxTime)
+        {
+            return droppable && timestamp < System.currentTimeMillis() - maxTime;
         }
 
         boolean shouldRetry()
         {
-            return !MessagingService.DROPPABLE_VERBS.contains(message.verb);
+            return !droppable;
         }
     }