From c84af6286d8a1e34daab90428e97238b50d908143faee572fb959d1462340917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Tue, 12 Aug 2025 11:29:25 +0200 Subject: [PATCH] Fix crash on connection Setting channel object in Rabbit listener object. --- common/rabbitmq.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/common/rabbitmq.go b/common/rabbitmq.go index 4384717..c5ee355 100644 --- a/common/rabbitmq.go +++ b/common/rabbitmq.go @@ -86,38 +86,38 @@ func (l *RabbitConnection) ProcessRabbitMQ(msgCh chan<- RabbitMessage) error { } defer connection.Close() - ch, err := connection.Channel() + l.ch, err = connection.Channel() if err != nil { return fmt.Errorf("Cannot create a channel. Err: %w", err) } - defer ch.Close() + defer l.ch.Close() - if err = ch.ExchangeDeclarePassive("pubsub", "topic", true, false, false, false, nil); err != nil { + if err = l.ch.ExchangeDeclarePassive("pubsub", "topic", true, false, false, false, nil); err != nil { return fmt.Errorf("Cannot find pubsub exchange? Err: %w", err) } var q rabbitmq.Queue if len(queueName) == 0 { - q, err = ch.QueueDeclare("", false, true, true, false, nil) + q, err = l.ch.QueueDeclare("", false, true, true, false, nil) } else { - q, err = ch.QueueDeclarePassive(queueName, true, false, true, false, nil) + q, err = l.ch.QueueDeclarePassive(queueName, true, false, true, false, nil) if err != nil { LogInfo("queue not found .. trying to create it:", err) - if ch.IsClosed() { - ch, err = connection.Channel() + if l.ch.IsClosed() { + l.ch, err = connection.Channel() if err != nil { return fmt.Errorf("Channel cannot be re-opened. Err: %w", err) } } - q, err = ch.QueueDeclare(queueName, true, false, true, false, nil) + q, err = l.ch.QueueDeclare(queueName, true, false, true, false, nil) if err != nil { LogInfo("can't create persistent queue ... falling back to temporaty queue:", err) - if ch.IsClosed() { - ch, err = connection.Channel() + if l.ch.IsClosed() { + l.ch, err = connection.Channel() return fmt.Errorf("Channel cannot be re-opened. Err: %w", err) } - q, err = ch.QueueDeclare("", false, true, true, false, nil) + q, err = l.ch.QueueDeclare("", false, true, true, false, nil) } } } @@ -135,7 +135,7 @@ func (l *RabbitConnection) ProcessRabbitMQ(msgCh chan<- RabbitMessage) error { l.topicSubChanges <- "+" + topic } - msgs, err := ch.Consume(q.Name, "", true, true, false, false, nil) + msgs, err := l.ch.Consume(q.Name, "", true, true, false, false, nil) if err != nil { return fmt.Errorf("Cannot start consumer. Err: %w", err) } -- 2.51.1