Skip to content

EnableZeroQueueConsumer fails with RetryEnable true or a DLQ policy #1319

Open
@telnoratti

Description

@telnoratti

Expected behavior

Setting EnableZeroQueueConsumer in the ConsumerOptions along with a DLQ policy or RetryEnable set to true, then calling Receive should return a message if there are messages.

Actual behavior

It never returns and there's an error printed ERRO[0000] unable to send initial permits to broker consumerID=2 error="invalid number of permits requested: 0" name=jgehd subscription=<subscription> topic="persistent://tenant/namespace/topic".

Steps to reproduce

consumer, err = client.Subscribe(pulsar.ConsumerOptions{
	Topic:            "persistent://tenant/namespace/topic",
	SubscriptionName: "subscription",
	Type:                        pulsar.Shared,
	RetryEnable:             true,                // When set to false this works as expected
	EnableZeroQueueConsumer: true,
}
consumer.Receive(context.Background())  // never returns even if there are messages

If I had to guess, I'd say that since this is because multiTopicConsumer it's not using the zeroQueueConsumer implementation. I am running with the patch from #1278.

System configuration

Pulsar version: 3.3.1
Library version: 0.14.1

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions