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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions