Fix haproxy global maxconn with disabled listeners
global maxconn value is based on the connection-limit of the listeners
of a LB, but it includes the connection-limit of disabled listeners.
Disabled listeners are now skipped.
Closes-Bug: #2024371
Change-Id: I45500d618b307f740b8e692c49f5efdd27dc10a0
(cherry picked from commit 21682f7056
)
This commit is contained in:
parent
41e7707645
commit
bd9d474b12
@ -265,6 +265,8 @@ class JinjaTemplater(object):
|
|||||||
# listeners' connection limits.
|
# listeners' connection limits.
|
||||||
connection_limit_sum = 0
|
connection_limit_sum = 0
|
||||||
for listener in listeners:
|
for listener in listeners:
|
||||||
|
if not listener.enabled:
|
||||||
|
continue
|
||||||
if listener.protocol in constants.LVS_PROTOCOLS:
|
if listener.protocol in constants.LVS_PROTOCOLS:
|
||||||
continue
|
continue
|
||||||
if listener.connection_limit and listener.connection_limit > -1:
|
if listener.connection_limit and listener.connection_limit > -1:
|
||||||
|
@ -1559,6 +1559,28 @@ class TestHaproxyCfg(base.TestCase):
|
|||||||
self.assertLess(ret['global_connection_limit'],
|
self.assertLess(ret['global_connection_limit'],
|
||||||
connection_limit_sum)
|
connection_limit_sum)
|
||||||
|
|
||||||
|
def test_transform_with_disabled_listeners(self):
|
||||||
|
in_amphora = sample_configs_combined.sample_amphora_tuple()
|
||||||
|
|
||||||
|
in_listeners = []
|
||||||
|
|
||||||
|
connection_limit_sum = 0
|
||||||
|
|
||||||
|
in_listener = (
|
||||||
|
sample_configs_combined.sample_listener_tuple())
|
||||||
|
connection_limit_sum += constants.HAPROXY_DEFAULT_MAXCONN
|
||||||
|
in_listeners.append(in_listener)
|
||||||
|
|
||||||
|
disabled_listener = (
|
||||||
|
sample_configs_combined.sample_listener_tuple(enabled=False))
|
||||||
|
in_listeners.append(disabled_listener)
|
||||||
|
|
||||||
|
ret = self.jinja_cfg._transform_loadbalancer(
|
||||||
|
in_amphora, in_listeners[0].load_balancer,
|
||||||
|
in_listeners, None, {})
|
||||||
|
self.assertEqual(ret['global_connection_limit'],
|
||||||
|
connection_limit_sum)
|
||||||
|
|
||||||
def test_transform_amphora(self):
|
def test_transform_amphora(self):
|
||||||
in_amphora = sample_configs_combined.sample_amphora_tuple()
|
in_amphora = sample_configs_combined.sample_amphora_tuple()
|
||||||
ret = self.jinja_cfg._transform_amphora(in_amphora, {})
|
ret = self.jinja_cfg._transform_amphora(in_amphora, {})
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixed the global number of concurrent connections in haproxy when disabling
|
||||||
|
listeners. The connection-limit of disabled listeners was used to compute
|
||||||
|
this value, disabled listeners are now skipped.
|
Loading…
Reference in New Issue
Block a user