This post has NOT been accepted by the mailing list yet.
Today I found an issue in SingleEndpointPool:
If an established connection is closed by the other end and then the port is blocked by firewall, the pool cannot return a working connection util openConnectionCount raise to its max. Even the firewall rule is removed later, the connection pool cannot be resumed.
connected -> connection drop + tcp port is blocked -> application try to reconnect but fail (by singleEndpointPool) -> pool's openConnectionCount raise to max -> tcp port is released -> application still cannot reconnect -> need to restart the application
As I found no way to emulate a connection timeout pragmatically, so no code to attach.