Skip to content
New issue

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

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

Already on GitHub? # to your account

Fix a blocking subscriber prevents other subscribers from receiving a message #256

Merged
merged 2 commits into from
Jan 26, 2022

Conversation

boreq
Copy link
Collaborator

@boreq boreq commented Dec 3, 2021

A gochannel subscriber could prevent subscribers which were registered
afterwards from receiving a message.

Steps to reproduce:

  1. Create a subscriber A subscribing to topic T.
  2. Create a subscriber B subscribing to topic T.
  3. Send a message on topic T.
  4. Subscriber B will never receive a message as long as subscriber A
    doesn't call ack.

This pull request fixes this behaviour by distributing the messages
concurrently.

Fixes #247.

boreq and others added 2 commits December 3, 2021 14:57
…message

A gochannel subscriber could prevent subscribers which were registered
afterwards from receiving a message.

Steps to reproduce:
1. Create a subscriber A subscribing to topic T.
2. Create a subscriber B subscribing to topic T.
3. Send a message on topic T.
4. Subscriber B will never receive a message as long as subscriber A
   doesn't call ack.

This pull request fixes this behaviour by distributing the messages
concurrently.

Fixes ThreeDotsLabs#247.
@roblaszczak
Copy link
Member

LGTM, thanks for the contribution 🍻

@roblaszczak roblaszczak merged commit 0a6ea1b into ThreeDotsLabs:master Jan 26, 2022
@skast96
Copy link

skast96 commented Feb 17, 2022

Is this already in the newest version of watermill ? I am experiencing the same error, except that my subscriber A is "dead" and I need a way to unsubscribe it.

@zhjdhx
Copy link

zhjdhx commented Feb 17, 2022 via email

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[gochannel] subscribers can block each other
4 participants