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 2016/11/28 13:38:25 UTC
[2/3] cassandra git commit: Remove timing window in test case
Remove timing window in test case
patch by Chris Lohfink; reviewed by Stefan Podkowinski for CASSANDRA-12875
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f60ab237
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f60ab237
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f60ab237
Branch: refs/heads/trunk
Commit: f60ab23731e4d7d6aa021f62b5a73dcedfa3e2f1
Parents: 554d536
Author: Chris Lohfink <Ch...@datastax.com>
Authored: Wed Nov 9 08:41:41 2016 -0600
Committer: Jason Brown <ja...@gmail.com>
Committed: Mon Nov 28 05:33:55 2016 -0800
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/net/IncomingTcpConnection.java | 5 +++--
.../org/apache/cassandra/net/MessageIn.java | 4 +---
.../cassandra/net/MessagingServiceTest.java | 20 ++++++++------------
4 files changed, 13 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f60ab237/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 93f9fcc..15af77e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.12
+ * Remove timing window in test case (CASSANDRA-12875)
* Resolve unit testing without JCE security libraries installed (CASSANDRA-12945)
* cqlsh auto completion: refactor definition of compaction strategy options (CASSANDRA-12946)
* Add support for arithmetic operators (CASSANDRA-11935)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f60ab237/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
index 7d3c607..9878590 100644
--- a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
+++ b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
@@ -39,6 +39,7 @@ import org.apache.cassandra.config.Config;
import org.xerial.snappy.SnappyInputStream;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.db.UnknownColumnFamilyException;
+import org.apache.cassandra.db.monitoring.ApproximateTime;
import org.apache.cassandra.io.util.DataInputPlus;
import org.apache.cassandra.io.util.DataInputPlus.DataInputStreamPlus;
import org.apache.cassandra.io.util.NIODataInputStream;
@@ -187,8 +188,8 @@ public class IncomingTcpConnection extends FastThreadLocalThread implements Clos
id = Integer.parseInt(input.readUTF());
else
id = input.readInt();
-
- MessageIn message = MessageIn.read(input, version, id, MessageIn.readConstructionTime(from, input));
+ long currentTime = ApproximateTime.currentTimeMillis();
+ MessageIn message = MessageIn.read(input, version, id, MessageIn.readConstructionTime(from, input, currentTime));
if (message == null)
{
// callback expired; nothing to do
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f60ab237/src/java/org/apache/cassandra/net/MessageIn.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessageIn.java b/src/java/org/apache/cassandra/net/MessageIn.java
index a254741..0de9520 100644
--- a/src/java/org/apache/cassandra/net/MessageIn.java
+++ b/src/java/org/apache/cassandra/net/MessageIn.java
@@ -124,10 +124,8 @@ public class MessageIn<T>
return MessageIn.create(from, payload, parameters, verb, version, constructionTime);
}
- public static long readConstructionTime(InetAddress from, DataInputPlus input) throws IOException
+ public static long readConstructionTime(InetAddress from, DataInputPlus input, long currentTime) throws IOException
{
- long currentTime = ApproximateTime.currentTimeMillis();
-
// Reconstruct the message construction time sent by the remote host (we sent only the lower 4 bytes, assuming the
// higher 4 bytes wouldn't change between the sender and receiver)
int partial = input.readInt(); // make sure to readInt, even if cross_node_to is not enabled
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f60ab237/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
index ec27b7e..11d17b8 100644
--- a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
+++ b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
@@ -34,20 +34,18 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import com.google.common.collect.Iterables;
-
import com.codahale.metrics.Timer;
+import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.db.monitoring.ApproximateTime;
import org.apache.cassandra.io.util.DataInputPlus.DataInputStreamPlus;
import org.apache.cassandra.io.util.DataOutputStreamPlus;
import org.apache.cassandra.io.util.WrappedDataOutputStreamPlus;
import org.caffinitas.ohc.histo.EstimatedHistogram;
-
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.apache.cassandra.config.DatabaseDescriptor;
-
import static org.junit.Assert.*;
public class MessagingServiceTest
@@ -100,15 +98,13 @@ public class MessagingServiceTest
public void testDCLatency() throws Exception
{
int latency = 100;
-
ConcurrentHashMap<String, Timer> dcLatency = MessagingService.instance().metrics.dcLatency;
dcLatency.clear();
- long now = System.currentTimeMillis();
+ long now = ApproximateTime.currentTimeMillis();
long sentAt = now - latency;
-
assertNull(dcLatency.get("datacenter1"));
- addDCLatency(sentAt);
+ addDCLatency(sentAt, now);
assertNotNull(dcLatency.get("datacenter1"));
assertEquals(1, dcLatency.get("datacenter1").getCount());
long expectedBucket = bucketOffsets[Math.abs(Arrays.binarySearch(bucketOffsets, TimeUnit.MILLISECONDS.toNanos(latency))) - 1];
@@ -124,11 +120,11 @@ public class MessagingServiceTest
ConcurrentHashMap<String, Timer> dcLatency = MessagingService.instance().metrics.dcLatency;
dcLatency.clear();
- long now = System.currentTimeMillis();
+ long now = ApproximateTime.currentTimeMillis();
long sentAt = now - latency;
assertNull(dcLatency.get("datacenter1"));
- addDCLatency(sentAt);
+ addDCLatency(sentAt, now);
assertNull(dcLatency.get("datacenter1"));
}
@@ -221,7 +217,7 @@ public class MessagingServiceTest
assertFalse(MockBackPressureStrategy.applied);
}
- private static void addDCLatency(long sentAt) throws IOException
+ private static void addDCLatency(long sentAt, long nowTime) throws IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (DataOutputStreamPlus out = new WrappedDataOutputStreamPlus(baos))
@@ -229,7 +225,7 @@ public class MessagingServiceTest
out.writeInt((int) sentAt);
}
DataInputStreamPlus in = new DataInputStreamPlus(new ByteArrayInputStream(baos.toByteArray()));
- MessageIn.readConstructionTime(InetAddress.getLocalHost(), in);
+ MessageIn.readConstructionTime(InetAddress.getLocalHost(), in, nowTime);
}
public static class MockBackPressureStrategy implements BackPressureStrategy<MockBackPressureStrategy.MockBackPressureState>