Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fix][client] Fix orphan consumer when reconnection and closing are concurrency executing #22958

Merged
merged 1 commit into from
Jun 25, 2024

Conversation

poorbarcode
Copy link
Contributor

@poorbarcode poorbarcode commented Jun 24, 2024

Motivation

time thread: ConsumerImpl.connectionOpened thread: ConsumerImpl.closeAsync
1 check connect state:
- reconnectiong
- cnx is null
2 Change state to ready
3 Reconnected
4 Change state to closed and skip sending
requests to remove consumer in broker memory

After the above steps, there is an orphan consumer in the broker memory, which will cause the error Exclusive consumer is already connected and other errors.

BTW, this issue may cause the compaction task stuck, because the new reader can not be created successfully due to the previous consumer has not been removed.

You can reproduce the issue by the test testConcurrencyClose in the PR #22959

Modifications

Fix the issue.

Documentation

  • doc
  • doc-required
  • doc-not-needed
  • doc-complete

Matching PR in forked repository

PR in forked repository: x

@poorbarcode poorbarcode self-assigned this Jun 24, 2024
@github-actions github-actions bot added the doc-not-needed Your PR changes do not impact docs label Jun 24, 2024
@lhotari lhotari added type/bug The PR fixed a bug or issue reported a bug area/client labels Jun 24, 2024
@lhotari lhotari changed the title [fix] [client] Fix orphan consumer when reconnection and closing are concurrency executing [fix][client] Fix orphan consumer when reconnection and closing are concurrency executing Jun 24, 2024
Copy link
Member

@lhotari lhotari left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@poorbarcode
Copy link
Contributor Author

/pulsarbot rerun-failure-checks

@poorbarcode poorbarcode added this to the 3.4.0 milestone Jun 24, 2024
@poorbarcode poorbarcode merged commit 69b2739 into apache:master Jun 25, 2024
64 of 70 checks passed
lhotari pushed a commit that referenced this pull request Jun 25, 2024
lhotari pushed a commit that referenced this pull request Jun 25, 2024
lhotari pushed a commit that referenced this pull request Jun 25, 2024
nikhil-ctds pushed a commit to datastax/pulsar that referenced this pull request Jun 27, 2024
…oncurrency executing (apache#22958)

(cherry picked from commit 69b2739)
(cherry picked from commit ad4cf9d)
srinath-ctds pushed a commit to datastax/pulsar that referenced this pull request Jul 1, 2024
…oncurrency executing (apache#22958)

(cherry picked from commit 69b2739)
(cherry picked from commit ad4cf9d)
poorbarcode added a commit that referenced this pull request Jul 15, 2024
…oncurrency executing (#22958)

(cherry picked from commit 69b2739)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants