Skip to content

System.NotSupportedException. Pipelining of requests forbidden after timeout #1368

Open
@pabermod

Description

@pabermod

Describe the bug

Hi,

If a timeout is produced when trying to declare a queue using the method QueueDeclare, following attempts to define a queue using the same IModel will produce a System.NotSupportedException. Pipelining of requests forbidden after timeout error.

Also if I try to dispose a IConnection that was unexpectedly closed, the Dispose method seems to never return.

To simulate timeout I use the windows application clumsy version 0.3 with the following configuration
image

I attach an example client:
RabbitMQTimeout.zip

Reproduction steps

  1. Start rabbitmq in a docker env: docker run --hostname my-rabbit --name some-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
  2. Open clumsy and configurate as indicated
  3. Start the attached project
  4. When the message "Channel MyChannel9 opened in connection 'MyClient'" is printed, start clumsy
  5. A timeout exception will appear when trying to create one of the queues
  6. Following exceptions will be System.NotSupportedException. Pipelining of requests forbidden
  7. Also after a while the connection will be unexpectedly closed with message: 541 - Unexpected Exception

Expected behavior

After the first timeout the channel should be created if there are no more connectivity problems. Otherwise it should generate again a Timeout exception.

Also the IConnection should be able to be manually disposed after an unexpected error. The line 232 of class RabbitMQCore is never executed.

Additional context

No response

Metadata

Metadata

Assignees

Labels

next-gen-todoIf a rewrite happens, address this issue.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions