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
Encountered this error in my ExceptionHandler.handleUnexpectedConnectionDriverException method a couple times on version 3.6.3 with connection and topology recovery enabled.
Message: RabbitExceptionHandler: Caught unexpected connection driver exception for connection XXX
Throwable: com.rabbitmq.client.impl.UnknownChannelException: Unknown channel number 147
at com.rabbitmq.client.impl.ChannelManager.getChannel(ChannelManager.java:82)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:560)
Looks to me like there is possibility MainLoop is processing a frame with a channel number that doesn't exist in ChannelManager? Not sure how that is possible and I can't reliably reproduce... Could potentially handle this scenario in a better way though?
The text was updated successfully, but these errors were encountered:
vikinghawk
changed the title
Possible NPE in AMQConnection.MainLoop.run
UnknownChannelException in AMQConnection.MainLoop.run
Sep 1, 2016
Could you provide us with a unit test that reproduces the exception? What do mean by handling this scenario in a better way? Silently ignoring the exception? Not sure it's a good idea.
BTW, also make sure your channels are accessed by only one thread at the same time, as they're not thread-safe.
If a channel was removed from the manager when there was e.g. a delivery in flight. In some cases the best we can do is to ignore it and log a warning, I believe at least Bunny already does that.
Encountered this error in my ExceptionHandler.handleUnexpectedConnectionDriverException method a couple times on version 3.6.3 with connection and topology recovery enabled.
Message: RabbitExceptionHandler: Caught unexpected connection driver exception for connection XXX
Throwable: com.rabbitmq.client.impl.UnknownChannelException: Unknown channel number 147
at com.rabbitmq.client.impl.ChannelManager.getChannel(ChannelManager.java:82)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:560)
Looks to me like there is possibility MainLoop is processing a frame with a channel number that doesn't exist in ChannelManager? Not sure how that is possible and I can't reliably reproduce... Could potentially handle this scenario in a better way though?
The text was updated successfully, but these errors were encountered: