Skip to content

[Bug] seek could sometimes be stuck #534

@BewareMyPower

Description

@BewareMyPower

Search before asking

  • I searched in the issues and found nothing similar.

Version

master

Minimal reproduce step

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?

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions