Description
Hi,
We have an issue where a thread seems to die, sometimes. We create a channel in a static method:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(Util.getServerProperty("messagequeue.server"));
factory.setUsername(Util.getProperty("username",MESSAGEQUEUE_PROPERTIES));
factory.setPassword(Util.getProperty("password",MESSAGEQUEUE_PROPERTIES));
factory.setVirtualHost(Util.getProperty("virtualhost",MESSAGEQUEUE_PROPERTIES));
connection = factory.newConnection();
channel = connection.createChannel();
And then publish something:
channel.basicPublish(exchangeName, routingKey, mandatory,basicProperties,message.getBytes("UTF-8"));
At a certain point in time, that basicPublish fails to return (since logging is present after that point and that does not show up). It gets called many times and does not return. There are no exceptions logged by the RabbitMQ client. The only thing I can see is that the AMQP thread died (because jstacks were made during that time). And I have no idea how that can happen without closing the channel (since it will always call _frameHandler.close(); ).
This is happening on a few servers, 3 of 20. The others are fine. The servers were busy at the time (but nothing extreme).
We are using rabbitmq-client.jar from 3.1.1. I have not found a way to reproduce it.
Needless to say, a restart from the application solves any issues.