Tracing payload not passed from QueryMessage to tracing session

Patch by Mick Semb Wever; Reviewed by T Jake Luciani for CASSANDRA-12835
This commit is contained in:
Mick Semb Wever 2016-10-25 20:00:46 +11:00
parent ba9beea9db
commit 44eb797ad7
7 changed files with 19 additions and 21 deletions

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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));
}

View File

@ -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);

View File

@ -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);
}