<div>An untested patch to disable it:</div><div><br></div><div><font face="courier new, monospace">diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl</font></div><div><font face="courier new, monospace">index 5acf6ac..8b65821 100644</font></div><div><font face="courier new, monospace">--- a/src/rabbit_reader.erl</font></div><div><font face="courier new, monospace">+++ b/src/rabbit_reader.erl</font></div><div><font face="courier new, monospace">@@ -368,7 +368,7 @@ terminate(_Explanation, State) -></font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace"> control_throttle(State = #v1{connection_state = CS,</font></div><div><font face="courier new, monospace"> conserve_resources = Mem}) -></font></div><div><font face="courier new, monospace">- case {CS, Mem orelse credit_flow:blocked()} of</font></div><div><font face="courier new, monospace">+ case {CS, Mem} of</font></div><div><font face="courier new, monospace"> {running, true} -> State#v1{connection_state = blocking};</font></div><div><font face="courier new, monospace"> {blocking, false} -> State#v1{connection_state = running};</font></div><div><font face="courier new, monospace"> {blocked, false} -> ok = rabbit_heartbeat:resume_monitor(</font></div><div><br></div><br>On Friday, May 25, 2012 3:42:36 PM UTC-7, Pablo Molnar wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">I'm also experiencing the flow control to be unhelpful using spring-amqp libraries. Is there a way to just turn it off?<br><br>Thanks,<div>Pablo<br><br><div class="gmail_quote">On Fri, May 25, 2012 at 2:57 PM, Chip Salzenberg <span dir="ltr"><<a href="mailto:rev.chip@gmail.com" target="_blank" checklongurl="true">rev.chip@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>The fundamental paradox of per-connection flow control is that it holds up the stop sign just when progress becomes possible. It is backwards and unhelpful. Consider:</div>
<div><br></div><div>1. A client is publishing 1.5K/sec to each of four exchanges, each of which has a queue.</div><div>2. There are no consumers. Therefore the queue is growing.</div><div>3. RMQ does not stop this. "Flow control" does not trigger.</div>
<div>4. The consumers appear to begin to tear down the backlog.</div><div>5. RMQ per-connection flow control suddenly decides that now there are some consumers, now it has a reason to throttle the sender.</div><div>6. If the consumers had not shown up, the producer would not have been blocked.</div>
<div><br></div><div>Therefore, it is only when the backlog can go DOWN that the broker decides to throttle the sender. Not when the backlog was GROWING, but when it could be SHRINKING, that's when RMQ decides to stop accepting.</div>
<div><br></div><div>This is not acceptable.</div><br>______________________________<wbr>_________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank" checklongurl="true">rabbitmq-discuss@lists.<wbr>rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank" checklongurl="true">https://lists.rabbitmq.com/<wbr>cgi-bin/mailman/listinfo/<wbr>rabbitmq-discuss</a><br>
<br></blockquote></div><br></div>
</blockquote>