BewareMyPower opened a new issue, #534:
URL: https://github.com/apache/pulsar-client-cpp/issues/534

   ### Search before asking
   
   - [x] I searched in the 
[issues](https://github.com/apache/pulsar-client-cpp/issues) and found nothing 
similar.
   
   
   ### Version
   
   master
   
   ### Minimal reproduce step
   
   
[reproduce.diff.txt](https://github.com/user-attachments/files/24638253/reproduce.diff.txt)
   
   Apply the patch above to the main branch and run 
`ConsumerSeekTest.testSubscribeSeekRaces`. 
   
   ### What did you expect to see?
   
   The `seek` call should return quickly.
   
   ### What did you see instead?
   
   The `seek` call is blocked.
   
   ### Anything else?
   
   This bug happened in the following process order:
   1. Consumer sent a SEEK request, the seek status was set to `IN_PROGRESS` 
and the callback was assigned to `seekCallback_`
   2. Broker disconnected and started resetting the cursor
   3. Consumer received a CLOSE_CONSUMER request and scheduled reconnection 
after 100ms
   4. Consumer reconnected and call `connectionOpened`. **Since the seek status 
is `IN_PROGRESS`, it would not trigger the seek callback.** A SUBSCRIBE request 
would be sent.
   5. Consumer received a SEEK response. **Since the SUBSCRIBE response was not 
received for now, the `cnx` field was not set, so the seek status was set to 
`COMPLETE` and wait for `connectionOpened` to complete the callback** 
   
   ### 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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to