When a consumer (manual asks, no_ack=0) is attached to a queue that later gets deleted and re-created by another program, I observe that:
amqp_basic_ack() returns AMQP_STATUS_OK as expected (frame sent), but
- Immediately probing for a server frame (I would expect something like e.g., CHANNEL_CLOSE, CONNECTION_CLOSE or BASIC_CANCEL) with
amqp_simple_wait_frame_noblock() always returns AMQP_STATUS_TIMEOUT.
- Subsequent
amqp_consume_message() calls return AMQP_RESPONSE_LIBRARY_EXCEPTION with AMQP_STATUS_TIMEOUT (-13) repeatedly, and I never receive a method frame indicating basic.cancel or channel/connection close.
The consumer becomes stuck in an infinite cycle of timeouts, never surfacing any server exception or cancellation frame.
Environment:
rabbitmq-c: v0.14.0
RabbitMQ: 4.1
When a consumer (manual asks, no_ack=0) is attached to a queue that later gets deleted and re-created by another program, I observe that:
amqp_basic_ack()returns AMQP_STATUS_OK as expected (frame sent), butamqp_simple_wait_frame_noblock()always returns AMQP_STATUS_TIMEOUT.amqp_consume_message()calls return AMQP_RESPONSE_LIBRARY_EXCEPTION with AMQP_STATUS_TIMEOUT (-13) repeatedly, and I never receive a method frame indicating basic.cancel or channel/connection close.The consumer becomes stuck in an infinite cycle of timeouts, never surfacing any server exception or cancellation frame.
Environment:
rabbitmq-c: v0.14.0
RabbitMQ: 4.1