Delay connection attempts without addresses.
In some circumstances users may have connection pools configured without any SocketAddresses ready to go. This is particularly likely in service discovery configurations. Right now, the effect of attempting to use such a pool is two fold. First, we'll emit a bunch of error level logs telling users we have no addresses. Second, we'll fall into the exponential backoff phase of connection establishment. The first property is annoying, but the second one is actively harmful. If your construction is timed incorrectly, we'll have the awkward problem of burning a bunch of CPU trying to create connections we know we cannot, and then a lengthy delay after the addresses are actually configured before we start trying to use them. That's the worst of all worlds. This patch adds logic to detect the attempt to create connections when we don't have any configured addresses and delays them. This path should improve performance and ergonomics when in this mode.
Status | Job ID | Name | Coverage | ||||||
---|---|---|---|---|---|---|---|---|---|
Platform Tests | |||||||||
passed |
#1049231898
bridge
|
Amazon Linux 2 |
|
||||||
passed |
#1049231895
bridge
|
CentOS 7 |
|
||||||
passed |
#1049231896
bridge
|
CentOS 8 |
|
||||||
passed |
#1049231890
bridge
|
Ubuntu Bionic |
|
||||||
passed |
#1049231893
bridge
|
Ubuntu Focal |
|
||||||
passed |
#1049231892
bridge
|
Ubuntu Xenial |
|
||||||
Quality Checks | |||||||||
passed |
#1049231901
|
Code Climate |
00:04:24
|
|
|||||