mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-15 21:59:41 -04:00
HAProxy - Load balancer
Adjust the handling of ACK for STREAM frames. When receiving a ACK, the corresponding frames from the acknowledged packet are retrieved. If a frame is of type STREAM, we compare the frame STREAM offset with the last offset known of the qcs instance. The comparison was incomplete as it did not treat a acked offset smaller than the known offset. Previously, the acked frame was incorrectly buffered in the qcs.tx.acked_frms. On reception of future ACKs, when trying to process the buffered acks via qcs_try_to_consume, the loop is interrupted on the smallest offset different from the qcs known offset : in this case it will be the previous smaller range. This is a real bug as it prevents all buffered ACKs to be processed, eventually filling the qcs sending buffer and cause the transfer to stall. Fix this by properly properly handle smaller acked offset. First check if the offset length is greater than the qcs offset and mark as acknowledged the difference on the qcs. If not, the frame is not buffered and simply ignored. |
||
|---|---|---|
| .github | ||
| addons | ||
| admin | ||
| dev | ||
| doc | ||
| examples | ||
| include | ||
| reg-tests | ||
| scripts | ||
| src | ||
| tests | ||
| .cirrus.yml | ||
| .gitattributes | ||
| .gitignore | ||
| .mailmap | ||
| .travis.yml | ||
| BRANCHES | ||
| CHANGELOG | ||
| CONTRIBUTING | ||
| INSTALL | ||
| LICENSE | ||
| MAINTAINERS | ||
| Makefile | ||
| README | ||
| ROADMAP | ||
| SUBVERS | ||
| VERDATE | ||
| VERSION | ||
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)