New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
System.NotSupportedException. Pipelining of requests forbidden after timeout #1368
Comments
It's not clear from your description whether the client actually hits an operation timeout or not. Because if it does not, then the exception is correct: this client does not support pipelining of methods for which the server will send a response. |
Hi, Yes, the client will get a timeout when trying to create a queue. After that it will get a Pipelining of requests forbidden after timeout exception. each time I try to create a queue using that channel. If I stop clumsy while getting the exceptions "Pipelining of requests forbidden" it will finally create the queue. So for me is an strange error that cannot be understad by the user. From the error message i would understand that after a timeout I cannot use the channel anymore. But if the network problem disappears it can create finally the queue using that same Channel, so i'm seeing some kind of inconsistency. |
@pabermod I added your code here - https://github.com/lukebakken/rabbitmq-dotnet-client-1368 I can reproduce this issue using more aggressive settings in Clumsy. I'm investigating. |
Any exception on a channel essentially means that In this specific case, I can see some improvements to be made:
I don't think this issue should be addressed in the 6.x series of this library, which is why I moved it to the 7.0.0 milestone |
#402 is this same issue. |
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 sameIModel
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](https://private-user-images.githubusercontent.com/9059614/259330261-78b7f04d-f2db-41c2-86d2-543c669dd92d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTY3NTMwNDAsIm5iZiI6MTcxNjc1Mjc0MCwicGF0aCI6Ii85MDU5NjE0LzI1OTMzMDI2MS03OGI3ZjA0ZC1mMmRiLTQxYzItODZkMi01NDNjNjY5ZGQ5MmQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDUyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA1MjZUMTk0NTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTNiNTM4YWU5YTFhODFiZmQ2YTFiODFmYWIzYjlmNWVjNmJlYWI3NDRkZjI5MTgzYWQxNWE2Y2JlYWM3ODllMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.W9rEo2-Ln1j-C1CAVBuj1fBWEoKQn_ZOK10PhP7Q8TQ)
I attach an example client:
RabbitMQTimeout.zip
Reproduction steps
docker run --hostname my-rabbit --name some-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
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
The text was updated successfully, but these errors were encountered: