You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2021/08/27 08:20:55 UTC

[GitHub] [pulsar] hangc0276 opened a new pull request #11815: fix flaky test testReacquireLocksAfterSessionLost

hangc0276 opened a new pull request #11815:
URL: https://github.com/apache/pulsar/pull/11815


   ### Motivation
   Then run ZKSessionTest#testReacquireLocksAfterSessionLost, it will fail occasionally.
   ```
   Error:  testReacquireLocksAfterSessionLost(org.apache.pulsar.metadata.ZKSessionTest)  Time elapsed: 12.974 s  <<< FAILURE!
   org.awaitility.core.ConditionTimeoutException: Assertion condition defined as a lambda expression in org.apache.pulsar.metadata.ZKSessionTest that uses org.apache.pulsar.metadata.api.coordination.ResourceLock expected [false] but found [true] within 10 seconds.
     at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:165)
     at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
     at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
     at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:895)
     at org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:679)
     at org.apache.pulsar.metadata.ZKSessionTest.testReacquireLocksAfterSessionLost(ZKSessionTest.java:130)
     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
     at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
     at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:45)
     at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:73)
     at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
     at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
     at java.base/java.lang.Thread.run(Thread.java:829)
   Caused by: java.lang.AssertionError: expected [false] but found [true]
     at org.testng.Assert.fail(Assert.java:99)
     at org.testng.Assert.failNotEquals(Assert.java:1037)
     at org.testng.Assert.assertFalse(Assert.java:67)
     at org.testng.Assert.assertFalse(Assert.java:77)
     at org.apache.pulsar.metadata.ZKSessionTest.lambda$testReacquireLocksAfterSessionLost$0(ZKSessionTest.java:131)
     at org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
     at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:222)
     at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:209)
     ... 4 more
   ```
   
   ### Modification
   1. Change the waiting time from default 10s to 30s.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [pulsar] lhotari edited a comment on pull request #11815: fix flaky test testReacquireLocksAfterSessionLost

Posted by GitBox <gi...@apache.org>.
lhotari edited a comment on pull request #11815:
URL: https://github.com/apache/pulsar/pull/11815#issuecomment-907101064


   why does this fix the issue? 
   
   The reason I'm asking is that it should not be possible that  `assertFalse(lock.getLockExpiredFuture().isDone())` becomes `false` after it has become `true`.  `lock.getLockExpiredFuture()` is a CompletableFuture and the reference doesn't get switched at any point in the test. If the CompletableFuture is done, it will never become undone.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [pulsar] merlimat commented on pull request #11815: fix flaky test testReacquireLocksAfterSessionLost

Posted by GitBox <gi...@apache.org>.
merlimat commented on pull request #11815:
URL: https://github.com/apache/pulsar/pull/11815#issuecomment-910557271


   Yes, the error is still happening and as @lhotari mentioned, we shouldn't even need to use Awaitily here: we're testing that the future is not completed, so if the assertion fails, it will never be able to get fixed later.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [pulsar] lhotari commented on pull request #11815: fix flaky test testReacquireLocksAfterSessionLost

Posted by GitBox <gi...@apache.org>.
lhotari commented on pull request #11815:
URL: https://github.com/apache/pulsar/pull/11815#issuecomment-907101064


   why does this fix the issue? 
   
   The reason I'm asking is that it should be possible that  `assertFalse(lock.getLockExpiredFuture().isDone())` becomes `false` after it has become `true`.  `lock.getLockExpiredFuture()` is a CompletableFuture and the reference doesn't get switched at any point in the test. If the CompletableFuture is done, it will never become undone.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [pulsar] hangc0276 merged pull request #11815: fix flaky test testReacquireLocksAfterSessionLost

Posted by GitBox <gi...@apache.org>.
hangc0276 merged pull request #11815:
URL: https://github.com/apache/pulsar/pull/11815


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org