[rabbitmq-discuss] Channel crashes after basic.cancel_ok.

Ben Hood 0x6e6562 at gmail.com
Wed May 7 21:29:48 BST 2008


Edwin,

On 7 May 2008, at 18:57, Edwin Fine wrote:

> Using Rabbit 1.3.0, Erlang client, Ubuntu Linux Feisty, Erlang  
> R12B-2 64-bit
>
> Consumer channel crashes as follows when I do the following:
>
> 1. Subscribe (basic.consume)
> 2. Unsubscribe (basic.cancel)
>
> The channel crashes handling the basic.cancel_ok. I can't figure out
> why. The channel is under some load (about 100 - 130 messages/second).
> I haven't yet built a standalone test case to try to reproduce this,
> but it happens consistently in my code.
>
> The code to subscribe is:
>
>    #'basic.consume_ok'{consumer_tag = ConsumerTag} =
> amqp_channel:call(Channel, BasicConsume, self())
>
> and this works fine.
>
> The code to cancel is
>
>    BasicCancel = #'basic.cancel'{consumer_tag = ConsumerTag, nowait  
> = false},
>    #'basic.cancel_ok'{consumer_tag = ConsumerTag} =
> amqp_channel:call(Channel, BasicCancel).
>
> The problem seems to be
>
> ** {function_clause,
>       [{gen_server,reply,
>            [<<>>,
>             {'basic.cancel_ok',<<"XHG.DELIVERY.Q.HTTP031.HC031">>}]},
>
>
> What am I doing wrong? Any ideas?

What you are seeing is a symptom of an error in the RPC handling.  
Essentially, the channel process is receiving a notification that it  
thinks it has already sent to the invoking process.

It would be really good if you could send some code that might help me  
reproduce this myself.

In the meantime I will look into this and see if I can come up with a  
solution.

HTH,

Ben





More information about the rabbitmq-discuss mailing list