You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by "BewareMyPower (via GitHub)" <gi...@apache.org> on 2023/11/09 09:03:40 UTC
[I] [Bug] Flaky BasicEndToEndTest.testPartitionedLazyProducerConsumer [pulsar-client-cpp]
BewareMyPower opened a new issue, #341:
URL: https://github.com/apache/pulsar-client-cpp/issues/341
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/pulsar-client-cpp/issues) and found nothing similar.
### Version
- Pulsar: 3.1.0
- Client: https://github.com/apache/pulsar-client-cpp/commit/47fb809a3f92fe928f134687d980ffbae9bcdf72
- Apple clang version 14.0.3
### Minimal reproduce step
```bash
./tests/pulsar-tests --gtest_filter='BasicEndToEndTest.testPartitionedLazyProducerConsumer'
```
### What did you expect to see?
The test should pass.
### What did you see instead?
```
tests/BasicEndToEndTest.cc:544: Failure
Expected equality of these values:
ResultOk
Which is: Ok
consumer.receive(m, 10000)
Which is: TimeOut
```
It can hardly pass in my local env.
### Anything else?
I added some logs
```c++
diff --git a/tests/BasicEndToEndTest.cc b/tests/BasicEndToEndTest.cc
index 0951dd4..85ec6f0 100644
--- a/tests/BasicEndToEndTest.cc
+++ b/tests/BasicEndToEndTest.cc
@@ -533,15 +533,16 @@ void testPartitionedProducerConsumer(bool lazyStartPartitionedProducers, std::st
std::stringstream ss;
ss << nanoSeconds;
Message msg = MessageBuilder().setContent(ss.str()).setPartitionKey(ss.str()).build();
- ASSERT_EQ(ResultOk, producer.send(msg));
- LOG_DEBUG("Message Timestamp is " << msg.getPublishTimestamp());
- LOG_DEBUG("Message is " << msg);
+ MessageId msgId;
+ ASSERT_EQ(ResultOk, producer.send(msg, msgId));
+ LOG_INFO("XYZ sent to " << msgId);
}
ASSERT_EQ(consumer.getSubscriptionName(), "subscription-A");
for (int i = 0; i < 10; i++) {
Message m;
- ASSERT_EQ(ResultOk, consumer.receive(m, 10000));
+ ASSERT_EQ(ResultOk, consumer.receive(m, 3000)) << "i: " << i;
+ LOG_INFO("XYZ received " << m.getMessageId());
consumer.acknowledge(m);
}
client.shutdown();
```
And here is a typical failure:
```
2023-11-09 17:01:03.116 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (8,0,1,0)
2023-11-09 17:01:03.119 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (8,1,1,0)
2023-11-09 17:01:03.122 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (8,2,1,0)
2023-11-09 17:01:03.124 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (8,3,1,0)
2023-11-09 17:01:03.126 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (8,4,1,0)
2023-11-09 17:01:03.140 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (12,0,0,0)
2023-11-09 17:01:03.153 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (11,0,2,0)
2023-11-09 17:01:03.156 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (8,5,1,0)
2023-11-09 17:01:03.156 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (-1,-1,0,0)
2023-11-09 17:01:03.158 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (12,1,0,0)
2023-11-09 17:01:03.158 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (8,0,1,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (8,1,1,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (8,2,1,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (8,3,1,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (8,4,1,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (12,0,0,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (11,0,2,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (8,5,1,0)
2023-11-09 17:01:03.159 INFO [0x1f72d5e00] BasicEndToEndTest:545 | XYZ received (12,1,0,0)
i: 9
```
You can see there is a message that failed.
```
2023-11-09 17:01:03.156 INFO [0x1f72d5e00] BasicEndToEndTest:538 | XYZ sent to (-1,-1,0,0)
```
However, `send` returns `ResultOk`.
### Are you willing to submit a PR?
- [X] I'm willing to submit a PR!
--
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.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] [Bug] Flaky BasicEndToEndTest.testPartitionedLazyProducerConsumer [pulsar-client-cpp]
Posted by "BewareMyPower (via GitHub)" <gi...@apache.org>.
BewareMyPower commented on issue #341:
URL: https://github.com/apache/pulsar-client-cpp/issues/341#issuecomment-1803459584
It happened because the deduplication is enabled.
```properties
brokerDeduplicationEnabled=true
```
--
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
Re: [I] [Bug] Flaky BasicEndToEndTest.testPartitionedLazyProducerConsumer [pulsar-client-cpp]
Posted by "BewareMyPower (via GitHub)" <gi...@apache.org>.
BewareMyPower closed issue #341: [Bug] Flaky BasicEndToEndTest.testPartitionedLazyProducerConsumer
URL: https://github.com/apache/pulsar-client-cpp/issues/341
--
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