Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flaky-test: NamespaceAuthZTest.testPermission #22466

Open
1 of 2 tasks
lhotari opened this issue Apr 9, 2024 · 3 comments
Open
1 of 2 tasks

Flaky-test: NamespaceAuthZTest.testPermission #22466

lhotari opened this issue Apr 9, 2024 · 3 comments

Comments

@lhotari
Copy link
Member

lhotari commented Apr 9, 2024

Search before asking

  • I searched in the issues and found nothing similar.

Example failure

https://github.com/apache/pulsar/actions/runs/8614618958/job/23608820624?pr=22464#step:11:1452

Exception stacktrace

  Error:  Tests run: 31, Failures: 1, Errors: 0, Skipped: 24, Time elapsed: 14.447 s <<< FAILURE! - in org.apache.pulsar.broker.admin.NamespaceAuthZTest
  Error:  org.apache.pulsar.broker.admin.NamespaceAuthZTest.testPermission  Time elapsed: 0.18 s  <<< FAILURE!
  org.mockito.exceptions.misusing.UnfinishedStubbingException: 
  
  Unfinished stubbing detected here:
  -> at org.apache.pulsar.broker.admin.NamespaceAuthZTest.setAuthorizationOperationChecker(NamespaceAuthZTest.java:135)
  
  E.g. thenReturn() may be missing.
  Examples of correct stubbing:
      when(mock.isOk()).thenReturn(true);
      when(mock.isOk()).thenThrow(exception);
      doThrow(exception).when(mock).someVoidMethod();
  Hints:
   1. missing thenReturn()
   2. you are trying to stub a final method, which is not supported
   3. you are stubbing the behaviour of another mock inside before 'thenReturn' instruction is completed
  
  	at org.apache.pulsar.broker.authorization.AuthorizationService.allowNamespaceOperationAsync(AuthorizationService.java:572)
  	at org.apache.pulsar.broker.admin.NamespaceAuthZTest.setAuthorizationOperationChecker(NamespaceAuthZTest.java:142)
  	at org.apache.pulsar.broker.admin.NamespaceAuthZTest.testPermission(NamespaceAuthZTest.java:582)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
  	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
  	at org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:47)
  	at org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:76)
  	at org.testng.internal.invokers.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:1136)
  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
  	at java.base/java.lang.Thread.run(Thread.java:840)

Mockito isn't thread safe and this could be a problem caused by invalid use of Mockito in multi-threaded code.

Are you willing to submit a PR?

  • I'm willing to submit a PR!
@lhotari
Copy link
Member Author

lhotari commented Apr 9, 2024

This might be related to #22398 changes.

@lhotari
Copy link
Member Author

lhotari commented Apr 18, 2024

Recent issue:

  Error:  Tests run: 31, Failures: 1, Errors: 0, Skipped: 24, Time elapsed: 16.162 s <<< FAILURE! - in org.apache.pulsar.broker.admin.NamespaceAuthZTest
  Error:  org.apache.pulsar.broker.admin.NamespaceAuthZTest.testPermission  Time elapsed: 0.185 s  <<< FAILURE!
  org.mockito.exceptions.misusing.UnfinishedStubbingException: 
  
  Unfinished stubbing detected here:
  -> at org.apache.pulsar.broker.admin.NamespaceAuthZTest.setAuthorizationOperationChecker(NamespaceAuthZTest.java:135)
  
  E.g. thenReturn() may be missing.
  Examples of correct stubbing:
      when(mock.isOk()).thenReturn(true);
      when(mock.isOk()).thenThrow(exception);
      doThrow(exception).when(mock).someVoidMethod();
  Hints:
   1. missing thenReturn()
   2. you are trying to stub a final method, which is not supported
   3. you are stubbing the behaviour of another mock inside before 'thenReturn' instruction is completed
  
  	at org.apache.pulsar.broker.authorization.AuthorizationService.allowNamespaceOperationAsync(AuthorizationService.java:572)
  	at org.apache.pulsar.broker.admin.NamespaceAuthZTest.setAuthorizationOperationChecker(NamespaceAuthZTest.java:142)
  	at org.apache.pulsar.broker.admin.NamespaceAuthZTest.testPermission(NamespaceAuthZTest.java:582)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
  	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
  	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)
  	at org.testng.internal.invokers.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:47)
  	at org.testng.internal.invokers.InvokeMethodRunnable.call(InvokeMethodRunnable.java:76)
  	at org.testng.internal.invokers.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:1136)
  	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
  	at java.base/java.lang.Thread.run(Thread.java:840)

in https://github.com/apache/pulsar/actions/runs/8736977834/job/23977794669?pr=22532#step:11:1573

@lhotari
Copy link
Member Author

lhotari commented Apr 18, 2024

This is a similar Mockito multi-threading issue as #22422 which was addressed by #22507. @Technoboy- or @coderzc do you have a chance to fix this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants