How connections are closed when a disk alarm is in effect #4627
Replies: 1 comment 3 replies
-
When a connection is in alarmed state, it stops reading from the socket. When it stops reading from the socket, there are certain events that it won't be able easily observe, connection closure Around 2015-2016 Mirantis engineers managed to solve this in the only way we found to get
In environments where heartbeats are not used, we are not aware of a solution that would allow We are not aware of any relevant changes to Erlang's server socket API that would make |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Set the disk limit to something larger than the disk space available:
rabbitmqctl set_disk_free_limit 1000GB
Create a connection, channel (with confirm) and start publishing (see attached script for an example, also reproduced with ruby bunny)
Forcefully stop the client application (ctrl-C)
The connection will now be removed (when checking
ss
ornetstat
) but the connection is still in blocked state in RabbitMQ Management andrabbitmqctl list_connections
still shows it. (rabbitmqctl eval 'inet:i().'
does not show the connection, but some state is left over in the ports as seen withobserver
)Once the alarm is lifted all connection info is released and logged at the same time:
Beta Was this translation helpful? Give feedback.
All reactions