From 0a905e1a8a243d03ed3b823821bad7881b43e3ff Mon Sep 17 00:00:00 2001 From: Aditya Manthramurthy Date: Tue, 21 Feb 2017 01:35:21 +0530 Subject: [PATCH] Fix rabbitmq reconnect problem (#3778) --- cmd/notify-amqp.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/cmd/notify-amqp.go b/cmd/notify-amqp.go index 9168cc959..f3b09379c 100644 --- a/cmd/notify-amqp.go +++ b/cmd/notify-amqp.go @@ -18,6 +18,7 @@ package cmd import ( "io/ioutil" + "net" "github.com/Sirupsen/logrus" "github.com/streadway/amqp" @@ -87,7 +88,14 @@ func (q amqpConn) Fire(entry *logrus.Entry) error { ch, err := q.Connection.Channel() if err != nil { // Any other error other than connection closed, return. - if err != amqp.ErrClosed { + isClosedErr := false + if neterr, ok := err.(*net.OpError); ok && + neterr.Err.Error() == "use of closed network connection" { + isClosedErr = true + } else if err == amqp.ErrClosed { + isClosedErr = true + } + if !isClosedErr { return err } // Attempt to connect again.