You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by dc...@apache.org on 2020/09/09 02:07:21 UTC
[cassandra] branch cassandra-3.0 updated: in-jvm dtests should
validate Instance#serializeMessage serializeSize matches bytes written
This is an automated email from the ASF dual-hosted git repository.
dcapwell pushed a commit to branch cassandra-3.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cassandra-3.0 by this push:
new bd1b84d in-jvm dtests should validate Instance#serializeMessage serializeSize matches bytes written
bd1b84d is described below
commit bd1b84dc3b5667c969e6d0277eb40a8e475e149a
Author: David Capwell <dc...@apache.org>
AuthorDate: Tue Sep 8 16:52:14 2020 -0700
in-jvm dtests should validate Instance#serializeMessage serializeSize matches bytes written
patch by David Capwell; reviewed by Jon Meredith, Blake Eggleston for CASSANDRA-16112
---
src/java/org/apache/cassandra/db/ReadCommand.java | 1 +
.../org/apache/cassandra/distributed/impl/Instance.java | 10 ++++++++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/java/org/apache/cassandra/db/ReadCommand.java b/src/java/org/apache/cassandra/db/ReadCommand.java
index 81b6803..e135ebb 100644
--- a/src/java/org/apache/cassandra/db/ReadCommand.java
+++ b/src/java/org/apache/cassandra/db/ReadCommand.java
@@ -1256,6 +1256,7 @@ public abstract class ReadCommand implements ReadQuery
long size = 1; // message type (single byte)
size += TypeSizes.sizeof(command.isDigestQuery());
size += TypeSizes.sizeof(metadata.ksName);
+ size += TypeSizes.sizeof(metadata.cfName);
size += TypeSizes.sizeof((short) keySize) + keySize;
size += TypeSizes.sizeof((long) command.nowInSec());
diff --git a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
index 95fefd2..f061779 100644
--- a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
+++ b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
@@ -24,6 +24,7 @@ import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -287,7 +288,12 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance
long timestamp = System.currentTimeMillis();
out.writeInt((int) timestamp);
messageOut.serialize(out, version);
- return new MessageImpl(messageOut.verb.ordinal(), out.toByteArray(), id, version, from);
+ byte[] bytes = out.toByteArray();
+ if (messageOut.serializedSize(version) + 12 != bytes.length)
+ throw new AssertionError(String.format("Message serializedSize(%s) does not match what was written with serialize(out, %s) for verb %s and serializer %s; " +
+ "expected %s, actual %s", version, version, messageOut.verb, messageOut.serializer.getClass(),
+ messageOut.serializedSize(version) + 12, bytes.length));
+ return new MessageImpl(messageOut.verb.ordinal(), bytes, id, version, from);
}
catch (IOException e)
{
@@ -429,7 +435,7 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance
}
catch (IOException e)
{
- throw new RuntimeException();
+ throw new RuntimeException(e);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org