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
A possible dead lock in connection close notification Go channel #11
Comments
Hi, this one is quite old, anyway I was trying to reproduce the issue as you described adding a unit test and I wasn't able to:
Was the scenario different? |
I wasn't really able to reproduce this anyway. |
Sorry, I didn't get your email until now. Your unit test doesn't replicate my sequence. The dead lock happens between the process of consuming the Go channel from In our logic, we have a select statement to:
We found the problem in the high availability test by killing one of rabbitMQ server node in the cluster randomly. The mitigation requires us to consume the Go channel from |
@rickyzhang82 |
Hi yes, trying to reproduce in various way but not able able to like this flow:
Trying to reopen the channel both in case <-closed and case d, _ := <-messages after I close the connection from the client code or rabbitMQ UI but without luck. Best thing if you are still able to reproduce the issue is to provide a trace at least to have some sort of idea on where begin to look. |
The dead lock happens when the connection is closing. I lost the core dump since then. But here is the sequence:
connection.NotifyClose
.The documentation should state that a separate Go routines should be dedicated to consume the connection close notification Go channel.
The text was updated successfully, but these errors were encountered: