Tracing payload not passed from QueryMessage to tracing session
Patch by Mick Semb Wever; Reviewed by T Jake Luciani for CASSANDRA-12835


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

Branch: refs/heads/trunk
Commit: 44eb797ad7028fe7b4fcd49800162db7c5c87cdc
Parents: ba9beea
Author: Mick Semb Wever <m...@apache.org>
Authored: Tue Oct 25 20:00:46 2016 +1100
Committer: Mick Semb Wever <m...@apache.org>
Committed: Sun Apr 23 12:14:25 2017 +1000

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../apache/cassandra/service/QueryState.java    |  6 -----
 .../cassandra/thrift/CassandraServer.java       |  2 +-
 .../transport/messages/BatchMessage.java        |  2 +-
 .../transport/messages/PrepareMessage.java      |  2 +-
 .../transport/messages/QueryMessage.java        |  2 +-
 .../apache/cassandra/tracing/TracingTest.java   | 25 +++++++++++---------
 7 files changed, 19 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/44eb797a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 08df2dd..2ae052e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -25,6 +25,7 @@
  * Address message coalescing regression (CASSANDRA-12676)
  * Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417)
  * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307)
+ * Tracing payload not passed from QueryMessage to tracing session 
(CASSANDRA-12835)
 Merged from 3.0:
  * Fail repair if insufficient responses received (CASSANDRA-13397)
  * Fix SSTableLoader fail when the loaded table contains dropped columns 
(CASSANDRA-13276)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44eb797a/src/java/org/apache/cassandra/service/QueryState.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/QueryState.java 
b/src/java/org/apache/cassandra/service/QueryState.java
index c70c692..f0ae3b2 100644
--- a/src/java/org/apache/cassandra/service/QueryState.java
+++ b/src/java/org/apache/cassandra/service/QueryState.java
@@ -19,7 +19,6 @@ package org.apache.cassandra.service;
 
 import java.net.InetAddress;
 import java.nio.ByteBuffer;
-import java.util.Collections;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ThreadLocalRandom;
@@ -77,11 +76,6 @@ public class QueryState
         this.preparedTracingSession = sessionId;
     }
 
-    public void createTracingSession()
-    {
-        createTracingSession(Collections.EMPTY_MAP);
-    }
-
     public void createTracingSession(Map<String,ByteBuffer> customPayload)
     {
         UUID session = this.preparedTracingSession;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44eb797a/src/java/org/apache/cassandra/thrift/CassandraServer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java 
b/src/java/org/apache/cassandra/thrift/CassandraServer.java
index 351d463..04a3e66 100644
--- a/src/java/org/apache/cassandra/thrift/CassandraServer.java
+++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java
@@ -2525,7 +2525,7 @@ public class CassandraServer implements Cassandra.Iface
     {
         if (state().getQueryState().traceNextQuery())
         {
-            state().getQueryState().createTracingSession();
+            
state().getQueryState().createTracingSession(Collections.EMPTY_MAP);
             return true;
         }
         return false;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44eb797a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java 
b/src/java/org/apache/cassandra/transport/messages/BatchMessage.java
index bb6411f..0be027f 100644
--- a/src/java/org/apache/cassandra/transport/messages/BatchMessage.java
+++ b/src/java/org/apache/cassandra/transport/messages/BatchMessage.java
@@ -160,7 +160,7 @@ public class BatchMessage extends Message.Request
 
             if (state.traceNextQuery())
             {
-                state.createTracingSession();
+                state.createTracingSession(getCustomPayload());
 
                 ImmutableMap.Builder<String, String> builder = 
ImmutableMap.builder();
                 if(options.getConsistency() != null)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44eb797a/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java 
b/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java
index b0c9dbe..04d2966 100644
--- a/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java
+++ b/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java
@@ -71,7 +71,7 @@ public class PrepareMessage extends Message.Request
 
             if (state.traceNextQuery())
             {
-                state.createTracingSession();
+                state.createTracingSession(getCustomPayload());
                 Tracing.instance.begin("Preparing CQL3 query", 
state.getClientAddress(), ImmutableMap.of("query", query));
             }
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44eb797a/src/java/org/apache/cassandra/transport/messages/QueryMessage.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/messages/QueryMessage.java 
b/src/java/org/apache/cassandra/transport/messages/QueryMessage.java
index 25d4e9e..4c761dd 100644
--- a/src/java/org/apache/cassandra/transport/messages/QueryMessage.java
+++ b/src/java/org/apache/cassandra/transport/messages/QueryMessage.java
@@ -99,7 +99,7 @@ public class QueryMessage extends Message.Request
 
             if (state.traceNextQuery())
             {
-                state.createTracingSession();
+                state.createTracingSession(getCustomPayload());
 
                 ImmutableMap.Builder<String, String> builder = 
ImmutableMap.builder();
                 builder.put("query", query);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/44eb797a/test/unit/org/apache/cassandra/tracing/TracingTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/tracing/TracingTest.java 
b/test/unit/org/apache/cassandra/tracing/TracingTest.java
index a5ad610..f546496 100644
--- a/test/unit/org/apache/cassandra/tracing/TracingTest.java
+++ b/test/unit/org/apache/cassandra/tracing/TracingTest.java
@@ -32,7 +32,7 @@ import org.junit.Test;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.utils.progress.ProgressEvent;
-import org.apache.cassandra.utils.progress.ProgressListener;
+import org.apache.commons.lang3.StringUtils;
 
 public final class TracingTest
 {
@@ -154,26 +154,26 @@ public final class TracingTest
         tracing.begin("test-request", Collections.<String,String>emptyMap());
         tracing.get().enableActivityNotification("test-tag");
 
-        tracing.get().addProgressListener(
-                new ProgressListener()
-                {
-                    public void progress(String tag, ProgressEvent pe)
-                    {
-                        assert "test-tag".equals(tag);
-                        assert "test-trace".equals(pe.getMessage());
-                    }
-                });
+        tracing.get().addProgressListener((String tag, ProgressEvent pe) -> {
+            assert "test-tag".equals(tag);
+            assert "test-trace".equals(pe.getMessage());
+        });
 
         tracing.get().trace("test-trace");
         tracing.stopSession();
         assert null == tracing.get();
     }
 
-    private class TracingImpl extends Tracing
+    private static final class TracingImpl extends Tracing
     {
         private final List<String> traces;
         private final Map<String,ByteBuffer> payloads = new HashMap<>();
 
+        public TracingImpl()
+        {
+            this(new ArrayList<>());
+        }
+
         public TracingImpl(List<String> traces)
         {
             this.traces = traces;
@@ -190,6 +190,9 @@ public final class TracingTest
 
         protected UUID newSession(UUID sessionId, TraceType traceType, 
Map<String,ByteBuffer> customPayload)
         {
+            if (!customPayload.isEmpty())
+                logger.info("adding custom payload items {}", 
StringUtils.join(customPayload.keySet(), ','));
+
             payloads.putAll(customPayload);
             return super.newSession(sessionId, traceType, customPayload);
         }

Reply via email to