Closed michaelplaing closed 9 years ago
Oh actually the logic looks OK - I missed a paren - I'll investigate more and comment again.
Ah - the logic in Channel0._negotiate is the culprit:
return min(client_value, server_value) or (client_value or server_value)
will never return a 0 for heartbeat.
Still leaving the real problem however...
And the same logic prevents the 'ridiculously high number' workaround - hmmm.
I'll look into this ASAP.
Thanks!
On Monday, April 13, 2015, Gavin M. Roy notifications@github.com wrote:
I'll look into this ASAP.
— Reply to this email directly or view it on GitHub https://github.com/gmr/rabbitpy/issues/69#issuecomment-92362452.
I'll release the a new version ASAP (likely tonight)
The internal logic treats 0 as None and sets the default instead. There is no workaround I can see except to set heartbeat to a ridiculously high number.
The real problem however is that my apps are getting heartbeat exceptions even tho there is traffic on the connection. RabbitMQ 3.5.1, python 2.7.9 on Amazon Linux, local connection between client and server.
I believe this is because there has been other traffic sent on the connection during the interval, hence no heartbeat is sent by the server on channel 0. I am checking w Pivotal to confirm my understanding of server behavior.