You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by aw...@apache.org on 2020/03/21 05:16:52 UTC

[kudu] 01/04: test: add some buffer in timing metrics

This is an automated email from the ASF dual-hosted git repository.

awong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit 7dff767a8ebd6ea4d61c78ea84ebaeb85e0f07d4
Author: Andrew Wong <aw...@cloudera.com>
AuthorDate: Fri Mar 20 20:53:09 2020 -0700

    test: add some buffer in timing metrics
    
    We've seen some flakiness in TestEchoSubprocess where the time is off by
    1ms, with logs like:
    
    [ERROR - main] (RetryRule.java:219) org.apache.kudu.subprocess.echo.TestEchoSubprocess.testSlowWriterMetrics: failed attempt 1
    java.lang.AssertionError: Expected a higher outbound queue time: 399 ms
    	at org.junit.Assert.fail(Assert.java:89) ~[junit-4.13.jar:4.13]
    	at org.junit.Assert.assertTrue(Assert.java:42) ~[junit-4.13.jar:4.13]
    	at org.apache.kudu.subprocess.echo.TestEchoSubprocess.testSlowWriterMetrics(TestEchoSubprocess.java:194) ~[test/:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_141]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_141]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_141]
            ...
    
    This patch adds some buffer (5ms to be conservative) to allow for some
    small errors.
    
    Change-Id: I5a96dd3804cedece2faf16b28d5c48396d87bcb7
    Reviewed-on: http://gerrit.cloudera.org:8080/15518
    Reviewed-by: Adar Dembo <ad...@cloudera.com>
    Tested-by: Kudu Jenkins
---
 .../java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java   | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java b/java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
index 294e643..704d036 100644
--- a/java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
+++ b/java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
@@ -186,17 +186,20 @@ public class TestEchoSubprocess extends SubprocessTestUtil {
     SubprocessMetricsPB m = receiveResponse().getMetrics();
     Assert.assertEquals(2, m.getOutboundQueueLength());
 
+    // NOTE: timing on the exact slept time sometimes yields a small error, so
+    // leave some buffer in checking for correctness.
+    final int BUFFER_MS = 5;
     m = receiveResponse().getMetrics();
     Assert.assertEquals(1, m.getOutboundQueueLength());
     Assert.assertTrue(
         String.format("Expected a higher outbound queue time: %s ms", m.getOutboundQueueTimeMs()),
-        m.getOutboundQueueTimeMs() >= BLOCK_MS);
+        m.getOutboundQueueTimeMs() + BUFFER_MS >= BLOCK_MS);
 
     m = receiveResponse().getMetrics();
     Assert.assertEquals(0, m.getOutboundQueueLength());
     Assert.assertTrue(
         String.format("Expected a higher outbound queue time: %s ms", m.getOutboundQueueTimeMs()),
-        m.getOutboundQueueTimeMs() >= 2 * BLOCK_MS);
+        m.getOutboundQueueTimeMs() + BUFFER_MS >= 2 * BLOCK_MS);
   }
 
   /**