Skip to content

amqp_basic_consume returns AMQP_STATUS_TIMEOUT after queue deletion #870

@perhapsmaple

Description

@perhapsmaple

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions