You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi,
I'm (still) developing a wrapper for this library.
I'm trying to properly implement flow control and context handling and trying to test as much as possible, simulating connection loss and more.
For one of my tests I have a rabbitmq which is out of memory upon startup which triggers the connection blocking state.
This state seems to trigger some weird deadlocks or something along the lines in this library making this select statement block "forever":
I'm pretty sure I got the something similaron QueueBind. Calling to QueueBind with noWait=false and getting stuck forever. Would it make sense to add some timeout for this operation ?
Describe the bug
Hi,
I'm (still) developing a wrapper for this library.
I'm trying to properly implement flow control and context handling and trying to test as much as possible, simulating connection loss and more.
For one of my tests I have a rabbitmq which is out of memory upon startup which triggers the connection blocking state.
This state seems to trigger some weird deadlocks or something along the lines in this library making this select statement block "forever":
amqp091-go/channel.go
Lines 181 to 205 in a2fcd5b
I have seen
Channel.Close()
andChannel.UnbindQueue(...)
block "forever".The blocking of
Channel.UnbindQueue(...)
is reproduced in the test below.Might be related to #225 (it might be possible to reproduce "turn off the internet" with the tool that I use for my tests that's called toxiproxy)
Reproduction steps
Here is a test that reproduces the problem:
make environment
https://github.com/jxsl13/amqpx/blob/feat/the-context-update/pool/session_test.go#L732-L885https://github.com/jxsl13/amqpx/blob/main/pool/session_test.go#L682-L837Expected behavior
QueueBind worked, so I guess QueueUnbind should also work.
I think this behavior can be triggered for nearly every method of
Channel
.Additional context
Should not be relevant but could:
darwin/arm64
macOS 14.3.1
The text was updated successfully, but these errors were encountered: