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

manikumar pushed a commit to branch 2.4
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/2.4 by this push:
     new 446f787  MINOR: fix flaky ConsumerBounceTest.testClose
446f787 is described below

commit 446f787dfc2073d1490df3d76c19db719e3db7fc
Author: Lucas Bradstreet <[email protected]>
AuthorDate: Thu Nov 14 13:47:10 2019 +0530

    MINOR: fix flaky ConsumerBounceTest.testClose
    
    Fixes `java.util.concurrent.ExecutionException: java.lang.AssertionError: 
Close finished too quickly 5999`.
    
    The close test sets a close duration in milliseconds, but measures the time 
taken in nanoseconds. This leads to small error due to the resolution in each, 
where the close is deemed to have taken too little time.
    
    When I measured the start and end with nanoTime, I found the time taken to 
close was `5999641566 ns (5999.6ms)` which seems close enough to be a 
resolution error. I've run the test 50 times and have not hit the "Close 
finished too quickly" issue again, whereas previously I hit a failure pretty 
quickly.
    
    Author: Lucas Bradstreet <[email protected]>
    
    Reviewers: Ismael Juma <[email protected]>
    
    Closes #7683 from lbradstreet/flaky-consumer-bounce-test
    
    (cherry picked from commit 2bd6b6ff0f86d588fc09f96973a469989b9693df)
    Signed-off-by: Manikumar Reddy <[email protected]>
---
 core/src/test/scala/integration/kafka/api/ConsumerBounceTest.scala | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/core/src/test/scala/integration/kafka/api/ConsumerBounceTest.scala 
b/core/src/test/scala/integration/kafka/api/ConsumerBounceTest.scala
index e355400..6c3201b 100644
--- a/core/src/test/scala/integration/kafka/api/ConsumerBounceTest.scala
+++ b/core/src/test/scala/integration/kafka/api/ConsumerBounceTest.scala
@@ -457,10 +457,10 @@ class ConsumerBounceTest extends AbstractConsumerTest 
with Logging {
       closeTimeoutMs: Long, minCloseTimeMs: Option[Long], maxCloseTimeMs: 
Option[Long]): Future[Any] = {
     executor.submit(CoreUtils.runnable {
       val closeGraceTimeMs = 2000
-      val startNanos = System.nanoTime
+      val startMs = System.currentTimeMillis()
       info("Closing consumer with timeout " + closeTimeoutMs + " ms.")
       consumer.close(time.Duration.ofMillis(closeTimeoutMs))
-      val timeTakenMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime - 
startNanos)
+      val timeTakenMs = System.currentTimeMillis() - startMs
       maxCloseTimeMs.foreach { ms =>
         assertTrue("Close took too long " + timeTakenMs, timeTakenMs < ms + 
closeGraceTimeMs)
       }

Reply via email to