Red Hat Bugzilla – Bug 972621
After deleting queue enabling producer flow control, Java client cant still produce
Last modified: 2018-02-06 11:42:10 EST
Description of problem:
Having a Java producer that is blocked by producer flow control due to queue X full and deleting such queue, the producer can't start to send messages further.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. java -Dmax_prefetch=10 org.apache.qpid.example.Spout -c=100000000 --content=<at_least_2k_content> "'amq.fanout'/None"
2. qpid-receive -a "amq.fanout" -f -m 1000000 --receive-rate=1
3. wait until amq.fanout_<uuid> queue gets full and producer flow control is enabled
4. Stop qpid-receive
Spout can't produce more messages despite it is not blocked by producer flow control.
(to check it: run qpid-stat -e periodically, amq.fanout exchange will have same msgIn counter)
Spout produces more messages.
The problem comes from Java client that sends session.flush, not from the broker.