You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ms...@apache.org on 2016/08/16 22:42:07 UTC
[06/50] [abbrv] cassandra git commit: Always use RANGE_SLICE verb for
3.x messages
Always use RANGE_SLICE verb for 3.x messages
Patch by Tyler Hobbs; reviewed by Benjamin Lerer for CASSANDRA-12249
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/465def8e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/465def8e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/465def8e
Branch: refs/heads/cassandra-3.8
Commit: 465def8e295b453dc22430dc4bb7039f6921151e
Parents: 62ef861
Author: Tyler Hobbs <ty...@gmail.com>
Authored: Wed Aug 10 11:09:38 2016 -0500
Committer: Tyler Hobbs <ty...@gmail.com>
Committed: Wed Aug 10 11:09:38 2016 -0500
----------------------------------------------------------------------
CHANGES.txt | 2 ++
src/java/org/apache/cassandra/net/MessageOut.java | 2 +-
src/java/org/apache/cassandra/net/MessagingService.java | 10 ++++++++++
3 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/465def8e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f613c5f..86746ad 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
3.0.9
+ * Fix potential bad messaging service message for paged range reads
+ within mixed-version 3.x clusters (CASSANDRA-12249)
* Change commitlog and sstables to track dirty and clean intervals (CASSANDRA-11828)
* NullPointerException during compaction on table with static columns (CASSANDRA-12336)
* Fixed ConcurrentModificationException when reading metrics in GraphiteReporter (CASSANDRA-11823)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/465def8e/src/java/org/apache/cassandra/net/MessageOut.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessageOut.java b/src/java/org/apache/cassandra/net/MessageOut.java
index a524e7a..ce190cb 100644
--- a/src/java/org/apache/cassandra/net/MessageOut.java
+++ b/src/java/org/apache/cassandra/net/MessageOut.java
@@ -109,7 +109,7 @@ public class MessageOut<T>
{
CompactEndpointSerializationHelper.serialize(from, out);
- out.writeInt(verb.ordinal());
+ out.writeInt(MessagingService.Verb.convertForMessagingServiceVersion(verb, version).ordinal());
out.writeInt(parameters.size());
for (Map.Entry<String, byte[]> entry : parameters.entrySet())
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/465def8e/src/java/org/apache/cassandra/net/MessagingService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java
index d01419f..45cfb8a 100644
--- a/src/java/org/apache/cassandra/net/MessagingService.java
+++ b/src/java/org/apache/cassandra/net/MessagingService.java
@@ -148,6 +148,16 @@ public final class MessagingService implements MessagingServiceMBean
UNUSED_4,
UNUSED_5,
;
+
+ // This is to support a "late" choice of the verb based on the messaging service version.
+ // See CASSANDRA-12249 for more details.
+ public static Verb convertForMessagingServiceVersion(Verb verb, int version)
+ {
+ if (verb == PAGED_RANGE && version >= VERSION_30)
+ return RANGE_SLICE;
+
+ return verb;
+ }
}
public static final EnumMap<MessagingService.Verb, Stage> verbStages = new EnumMap<MessagingService.Verb, Stage>(MessagingService.Verb.class)