EnableZeroQueueConsumer fails with RetryEnable true or a DLQ policy
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 https://github.com/apache/pulsar-client-go/pull/1278.
System configuration
Pulsar version: 3.3.1 Library version: 0.14.1
Thanks for your feedback, I will deal with this issue.
@telnoratti This issue has been fixed #1391 , because ZeroQueueConsumer cannot be used with RetryEnable