Role haproxy_server for OpenStack-Ansible
Go to file
Gaudenz Steinlin e911f3f2d2 Variable to set HTTP keepalive mode
The HTTP keepalive mode is currently hardcoded to "http-server-close"
for all HTTP services. This disables keepalive for HAProxy to backend
connections, but leaves it enabled for client connections to HAProxy.
This is problematic especially for service to service calls (e.g.
nova-api to neutron). If a request is made at the same time the HAProxy
keepalive timeout expires, the result of the request is undefined. This
leads to code 500 error responses from the nova-api because the request
from nova-api to neutron failed. "Connection aborted" error messages in
the logs are an indication of this issue.

There is also a bug report[1] about the same issue in devstack which was
solved by disabling keepalive and a script[2] to reproduce the issue in
devstack.

This adds a default and per service variables to set the HTTP keepalive
mode used by HAProxy. The default value is changed to "forceclose" to
disable HTTP keepalive on the server and client side. With HTTP
keepalive disabled the issue can no longer be reproduced.

[1] https://bugs.launchpad.net/devstack/+bug/1630664
[2] https://github.com/JordanP/openstack-snippets/blob/master/keepalive-race/keep-alive-race.py

Change-Id: If819912873270f0568974925490023310f9cbd66
2019-03-04 18:29:25 +01:00
defaults Variable to set HTTP keepalive mode 2019-03-04 18:29:25 +01:00
doc Add feature Letsencrypt SSL certification 2019-01-17 17:54:50 +01:00
examples Trivial: Fix the pep8 warning 2018-06-20 16:29:56 +08:00
files Allow rsyslog to log HAProxy locally 2018-09-23 00:58:47 -05:00
handlers Cleanup role 2018-02-15 09:35:21 -06:00
meta SUSE: Add support for openSUSE Leap 15 2018-09-13 15:08:07 +01:00
releasenotes Add feature Letsencrypt SSL certification 2019-01-17 17:54:50 +01:00
tasks Add feature Letsencrypt SSL certification 2019-01-17 17:54:50 +01:00
templates Variable to set HTTP keepalive mode 2019-03-04 18:29:25 +01:00
tests Add 'absent' service state 2018-10-08 15:11:10 +01:00
vars Merge "Allow rsyslog to log HAProxy locally" 2018-11-10 10:00:51 +00:00
zuul.d switch documentation job to new PTI 2018-08-21 13:21:46 +00:00
.gitignore Updated from OpenStack Ansible Tests 2018-10-02 14:50:47 +00:00
.gitreview Add scaffolding for OpenStack-CI tests 2016-08-21 17:00:50 +01:00
CONTRIBUTING.rst Replace Chinese punctuation with English punctuation 2018-09-12 12:57:40 +00:00
LICENSE Add scaffolding for OpenStack-CI tests 2016-08-21 17:00:50 +01:00
README.rst Add bugs url link to README 2018-12-04 10:03:47 +00:00
Vagrantfile Updated from OpenStack Ansible Tests 2018-09-28 06:17:26 +00:00
bindep.txt Updated from OpenStack Ansible Tests 2019-02-27 06:01:54 +00:00
manual-test.rc Use centralised test scripts 2016-09-27 16:02:41 +00:00
run_tests.sh Updated from OpenStack Ansible Tests 2019-02-27 06:01:54 +00:00
setup.cfg Update mailinglist from dev to discuss 2018-12-05 09:16:39 +08:00
setup.py Updated from global requirements 2017-03-02 11:51:13 +00:00
tox.ini fix tox python3 overrides 2018-09-26 18:42:09 -04:00

README.rst

Team and repository tags

image

OpenStack-Ansible HAProxy server

Documentation for the project can be found at:

https://docs.openstack.org/openstack-ansible-haproxy_server/latest

Release notes for the project can be found at:

https://docs.openstack.org/releasenotes/openstack-ansible-haproxy_server/

The project source code repository is located at:

https://git.openstack.org/cgit/openstack/openstack-ansible-haproxy_server/

The project home is at:

https://launchpad.net/openstack-ansible

The project bug tracker is located at:

https://bugs.launchpad.net/openstack-ansible