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/12/12 07:02:22 UTC

[GitHub] [pulsar] michaeljmarshall removed a comment on pull request #13245: Make sure the client can get response when encounter producer busy exception.

michaeljmarshall removed a comment on pull request #13245:
URL: https://github.com/apache/pulsar/pull/13245#issuecomment-991842394


   Note that when I ran the test for branch-2.7, `ServerCnxTest`, I saw the following stack trace:
   
   ```
   [ERROR] Tests run: 43, Failures: 1, Errors: 0, Skipped: 1, Time elapsed: 25.786 s <<< FAILURE! - in org.apache.pulsar.broker.service.ServerCnxTest
   [ERROR] testCreateProducerTimeoutThenCreateSameNamedProducerShouldFail(org.apache.pulsar.broker.service.ServerCnxTest)  Time elapsed: 0.025 s  <<< FAILURE!
   java.lang.AssertionError: expected [4] but found [1]
   	at org.testng.Assert.fail(Assert.java:99)
   	at org.testng.Assert.failNotEquals(Assert.java:1037)
   	at org.testng.Assert.assertEqualsImpl(Assert.java:140)
   	at org.testng.Assert.assertEquals(Assert.java:122)
   	at org.testng.Assert.assertEquals(Assert.java:797)
   	at org.testng.Assert.assertEquals(Assert.java:807)
   	at org.apache.pulsar.broker.service.ServerCnxTest.testCreateProducerTimeoutThenCreateSameNamedProducerShouldFail(ServerCnxTest.java:878)
   	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   	at java.lang.reflect.Method.invoke(Method.java:498)
   	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.util.concurrent.FutureTask.run(FutureTask.java:266)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
   	at java.lang.Thread.run(Thread.java:748)
   ```
   
   This happens because in `branch-2.7`, we respond even if the producer's future was already created. The test I wrote does not expect a response for request 1, but the 2.7 broker is sending a response. Here is the failing line in branch-2.7:
   
   https://github.com/apache/pulsar/blob/4f19b8622d5d0d17973399883e492b839fc30f0a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/ServerCnxTest.java#L883
   
   Edit: note that the line numbers are slightly off in the stack trace because I resolved cherry-pick conflicts a little differently. Here is the commit I had used to get the above stack trace: https://github.com/michaeljmarshall/pulsar/commit/358da85be37c5241499b4bb4f69631877c3eeb97


-- 
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