apache / apache/pulsar

[Bug] Client with shared subscription is blocked

Open
#21,104 30 comments 1 reaction 1 assignee Assigned to @poorbarcode View on GitHub
category/reliability type/bug
Dominant language
Java
Stars
15.3k
Forks
3.8k
Avg merge
1d 14h
Merged PRs (30d)
160

Description

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.

### Version

Client - 3.1.0
Pulsar - 3.1.0 (and later builds)

Also reported on 3.0.1

### Minimal reproduce step

My reproducible steps:
1. Create persistent topic with 3 partitions
2. Publish 1 mln messages (30KB)
3. Run the client and consumer:

```java
PulsarClient client = PulsarClient.builder()
.serviceUrl(this.pulsarBrokerUrl)
.build();

Consumer consumer = client.newConsumer()
.topic(sourceTopic)
.subscriptionInitialPosition(SubscriptionInitialPosition.Earliest)
.subscriptionName(subscriptionName)
.subscriptionType(SubscriptionType.Shared)
.receiverQueueSize(8)
.ackTimeout(5, TimeUnit.SECONDS)
.subscribe();
```

### What did you expect to see?

All messages are received

### What did you see instead?

Client stops to receive messages, restart client helps, but it get stuck after some time.

### Anything else?

The issue was originally created described here: #21082
@MichalKoziorowski-TomTom also faces the issue.

I've created new issue, because it in #21082 the author says that broker restart helps. In case of this issue, it looks like it's client related and some race condition observed in 3.x.x. after introducing `ackTimeout`

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.