You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello.
We recently experienced RabbitMQ outage and got the following logs from our RabbitMQ listener:
ERROR 6 --- [ntContainer#3-5] o.s.a.r.l.SimpleMessageListenerContainer : Consumer received fatal=false exception on startup
org.springframework.amqp.rabbit.listener.QueuesNotAvailableException: Cannot prepare queue for listener. Either the queue doesn't exist or the broker will not allow us to use it.
And while investigating issues with our RabbitMQ configuration, we got really confused why container was stopped if it says fatal=false. Further investigation lead us to this code in org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer:
catch (QueuesNotAvailableException ex) {
logger.error("Consumer received fatal=" + isMismatchedQueuesFatal() + " exception on startup", ex);
if (isMissingQueuesFatal()) {
this.startupException = ex;
// Fatal, but no point re-throwing, so just abort.
aborted = true;
}
publishConsumerFailedEvent("Consumer queue(s) not available", aborted, ex);
}
For logging this code checks isMismatchedQueuesFatal() method, but for actual logic it uses isMissingQueuesFatal().
Searching for other usages of isMismatchedQueuesFatal() shows that it's mainly used when configuring listener and declaring queues. The only other place where its usage is not configuration-related is the snippet above.
Is this intentional or just a typo?
The text was updated successfully, but these errors were encountered:
Yes; it's a typo; thanks for reporting - but it's also wrong to just log the value; the error should explicitly refer to the missingQueuesFatal property.
Hello.
We recently experienced RabbitMQ outage and got the following logs from our RabbitMQ listener:
And while investigating issues with our RabbitMQ configuration, we got really confused why container was stopped if it says
fatal=false
. Further investigation lead us to this code inorg.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer
:For logging this code checks
isMismatchedQueuesFatal()
method, but for actual logic it usesisMissingQueuesFatal()
.Searching for other usages of
isMismatchedQueuesFatal()
shows that it's mainly used when configuring listener and declaring queues. The only other place where its usage is not configuration-related is the snippet above.Is this intentional or just a typo?
The text was updated successfully, but these errors were encountered: