Open
Description
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