I have a Java rabbitmq client that is generating WARN and ERROR level log messages when I try to shut it down.
[rabbitmq-connection-shutdown-amqp://gu...@127.0.0.1:19943/] INFO io.vertx.rabbitmq.impl.RabbitMQConnectionImpl - Connection Shutdown: clean connection shutdown; protocol method: #method<connection.close>(reply-code=200, reply-text=OK, class-id=0, method-id=0) [rabbitmq-nio] WARN com.rabbitmq.client.impl.nio.NioLoop - Error during reading frames
java.io.IOException: I/O thread: reached EOF
at com.rabbitmq.client.impl.nio.NioHelper.read(NioHelper.java:27)
at com.rabbitmq.client.impl.nio.SocketChannelFrameHandlerState.prepareForReadSequence(SocketChannelFrameHandlerState.java:189)
at com.rabbitmq.client.impl.nio.NioLoop.run(NioLoop.java:153)
at java.base/java.lang.Thread.run(Thread.java:831)
[rabbitmq-connection-shutdown-amqp://gu...@127.0.0.1:19943/] ERROR com.rabbitmq.client.impl.ForgivingExceptionHandler - An unexpected connection driver error occurred java.io.IOException: I/O thread: reached EOF
at com.rabbitmq.client.impl.nio.NioHelper.read(NioHelper.java:27)
at com.rabbitmq.client.impl.nio.SocketChannelFrameHandlerState.prepareForReadSequence(SocketChannelFrameHandlerState.java:189)
at com.rabbitmq.client.impl.nio.NioLoop.run(NioLoop.java:153)
at java.base/java.lang.Thread.run(Thread.java:831)
[rabbitmq-connection-shutdown-amqp://gu...@127.0.0.1:19943/] INFO io.vertx.rabbitmq.impl.RabbitMQConnectionImpl - Connection Shutdown: connection error The next two seem to originate from here: https://github.com/rabbitmq/rabbitmq-java-client/blob/main/src/main/java/com/rabbitmq/client/impl/nio/NioHelper.javaNote that I am running the connection through a Vertx proxy, but that should only be closing sockets in response to them being closed by the other end.The relevant proxy code is just: serverSocket.handler(clientSocket::write);
serverSocket.exceptionHandler(err -> serverSocket.close());
serverSocket.closeHandler(v -> clientSocket.close());
clientSocket.handler(serverSocket::write);
clientSocket.exceptionHandler(err -> clientSocket.close());
clientSocket.closeHandler(v -> serverSocket.close());
serverSocket.resume();
Thanks.