[rabbitmq-discuss] Connection.createChannel() hangs using amqp-client 3.1.1

Tim Watson tim at rabbitmq.com
Fri Jun 7 09:38:51 BST 2013

Hi Jonathan,

On 6 Jun 2013, at 23:42, Jonathan Halterman wrote:
> I hit on a scenario where connection.createChannel() may hang forever. The scenario: obtain a channel and attempt to publish to a non-existent exchange. The channel will be shutdown. Attempt to establish a new (replacement) channel via Connection.createChannel(), which hangs forever. A simple version of this scenario:

This should not be happening. Are you absolutely sure you're using version 3.1.1 of the java client library, since a similar bug (involving accidentally re-used channel ids) was fixed in a previous release: http://hg.rabbitmq.com/rabbitmq-java-client/rev/ea7d68c2154d

> From Tracer:
> 1370554962786: <Tracer-0> ch#1 <- {#method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'foo' in vhost '/', class-id=60, method-id=40), null, ""}
> 1370554962788: <Tracer-0> ch#1 -> {#method<channel.close-ok>(), null, ""}
> 1370554974891: <Tracer-0> ch#1 -> {#method<channel.open>(out-of-band=), null, ""}
> 1370554974970: <Tracer-0> ch#1 <- {#method<channel.open-ok>(channel-id=), null, ""}

That last line seems very odd - I would've expected to a see a channel id in there, though truth be told I'm not overly familiar with the Tracer tool in the java client. 

> Any ideas why things are hanging?

According to the last line of the trace you've supplied, a new channel was opened successfully, though there's no channel id present which is worrying. Please confirm that you are definitely using the right version (i.e., where did you obtain the amqp-client binary from) and we'll take a closer look.


More information about the rabbitmq-discuss mailing list