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 2024/02/01 08:40:30 UTC
[I] [Bug] Creating producer or consumer doesn't retry for temporarily errors [pulsar-client-cpp]
BewareMyPower opened a new issue, #391:
URL: https://github.com/apache/pulsar-client-cpp/issues/391
### Search before asking
- [X] I searched in the [issues](https://github.com/apache/pulsar-client-cpp/issues) and found nothing similar.
### Version
Pulsar: 3.0.1.4
C++ Client: 3.4.2
### Minimal reproduce step
It happens in a stress test.
### What did you expect to see?
When the broker is temporarily unavailable, e.g. SSL handshake failed, the client should retry creating producers or consumers.
### What did you see instead?
There are a lot `ResultConnectError` errors in `createProducerAsync` with many `Handshake failed: stream truncated` and `Connection closed with ConnectError` logs.
```
2024-01-25T00:23:02.223Z E [<local_ip>:53420 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.223Z E [<local_ip>:53420 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.287Z E [<local_ip>:53488 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.288Z E [<local_ip>:53488 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.323Z E [<local_ip>:53538 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.323Z E [<local_ip>:53538 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.430Z E [<local_ip>:53730 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.430Z E [<local_ip>:53730 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.485Z E [<local_ip>:53798 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.485Z E [<local_ip>:53798 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.521Z E [<local_ip>:53886 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.521Z E [<local_ip>:53886 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.697Z E [<local_ip>:54094 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.698Z E [<local_ip>:54094 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.812Z E [<local_ip>:54280 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.812Z E [<local_ip>:54280 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.824Z W Error creating topic producer for <topic-1>: 5
2024-01-25T00:23:02.824Z E [<local_ip>:54350 -> <remote_ip>:6651] Connection closed with ConnectError (refCnt: 2)
2024-01-25T00:23:02.824Z E [<local_ip>:54350 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.838Z E [<local_ip>:54386 -> <remote_ip>:6651] Handshake failed: stream truncated
2024-01-25T00:23:02.824Z W Error creating topic producer for <topic-2>: 5
```
Error code 5 means `ResultConnectError`.
### Anything else?
It's because when handshake failed, the `ClientConnection` will close with `ResultConnectError` (by default)
https://github.com/apache/pulsar-client-cpp/blob/d1dd08ba3d9c964506ead1a9e3cde0cccad4621b/lib/ClientConnection.cc#L504-L508
Then `ProducerImpl::connectionFailed` will be called with `ResultConnectError`, if the producer didn't complete the creation, it will immediately fail with that Result
https://github.com/apache/pulsar-client-cpp/blob/d1dd08ba3d9c964506ead1a9e3cde0cccad4621b/lib/ProducerImpl.cc#L179
### 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] Creating producer or consumer doesn't retry for temporarily errors [pulsar-client-cpp]
Posted by "BewareMyPower (via GitHub)" <gi...@apache.org>.
BewareMyPower closed issue #391: [Bug] Creating producer or consumer doesn't retry for temporarily errors
URL: https://github.com/apache/pulsar-client-cpp/issues/391
--
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] Creating producer or consumer doesn't retry for temporarily errors [pulsar-client-cpp]
Posted by "BewareMyPower (via GitHub)" <gi...@apache.org>.
BewareMyPower closed issue #391: [Bug] Creating producer or consumer doesn't retry for temporarily errors
URL: https://github.com/apache/pulsar-client-cpp/issues/391
--
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