loose heartbeat, do not reconnect to rabbitmq server
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
oslo.messaging |
Fix Released
|
Undecided
|
Mehdi Abaakouk |
Bug Description
for send purpose connection, it will start a heartbeat_check thread which will run the function:def _heartbeat_
when it finds the heartbeat from rabbitmq-server was lost, amqp will raise the "too may heartbeat loose" exception. and the _heartbeat_
I think the purpose of action is to reconnect to rabbitmq-server, but actually I found the function ensure_connection didn't going to
do reconnection.
The reason as I know is the connection already exists, and the function does nothing, so kombu.connectio
I have tried a modification in my environment, and it works. like below.
try:
803 self._heartbeat
804 # NOTE(sileht): We need to drain event to receive
805 # heartbeat from the broker but don't hold the
806 # connection too much times. In amqpdriver a connection
807 # is used exclusivly for read or for write, so we have
808 # to do this for connection used for write drain_events
809 # already do that for other connection
810 try:
811 self.connection
812 except socket.timeout:
813 pass
814 except recoverable_errors as exc:
815 LOG.info(_LI("A recoverable connection/channel error "
816 "occurred, trying to reconnect: %s"), exc)
817 self.ensure_
Changed in oslo.messaging: | |
assignee: | Mehdi Abaakouk (sileht) → Davanum Srinivas (DIMS) (dims-v) |
Changed in oslo.messaging: | |
assignee: | Davanum Srinivas (DIMS) (dims-v) → Mehdi Abaakouk (sileht) |
Fix proposed to branch: master /review. openstack. org/253510
Review: https:/