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