Hi, HAProxy 1.8.2 was released on 2017/12/23. It added 64 new commits after version 1.8.1.
This version fixes all the issues diagnosed since 1.8.1. The most important ones are : - truncated and slow HTTP/2 POST forms - abortonclose killing all HTTP/2 requests - single server taking all the load in map-based algorithms - timeouts and too later connection shutdown on TCP/tunnel - cache did not consider cache-control in the request - various server state transition issues (down->maint, stopping) - email alerts unexpectedly modifying the server state - log fd leaks across reloads in master-worker mode - deadlocks in variables usage under threads There are still a few pending reports that need to be analysed, but having a new reference version without all the problems above will help sorting the bug reports and will save most users from not fun surprises. If you are on 1.8, please upgrade to 1.8.2, at least before reporting a bug. We'll all save valuable time :-) Please find the usual URLs below : Site index : http://www.haproxy.org/ Discourse : http://discourse.haproxy.org/ Sources : http://www.haproxy.org/download/1.8/src/ Git repository : http://git.haproxy.org/git/haproxy-1.8.git/ Git Web browsing : http://git.haproxy.org/?p=haproxy-1.8.git Changelog : http://www.haproxy.org/download/1.8/src/CHANGELOG Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/ Willy --- Complete changelog : Aleksandar Lazic (1): CONTRIB: halog: Add help text for -s switch in halog program Bertrand Jacquin (8): MINOR: netscaler: respect syntax MINOR: netscaler: remove the use of cip_magic only used once MINOR: netscaler: rename cip_len to clarify its uage BUG/MEDIUM: netscaler: use the appropriate IPv6 header size BUG/MAJOR: netscaler: address truncated CIP header detection MINOR: netscaler: check in one-shot if buffer is large enough for IP and TCP header MEDIUM: netscaler: do not analyze original IP packet size MEDIUM: netscaler: add support for standard NetScaler CIP protocol Christopher Faulet (3): BUG/MINOR: action: Don't check http capture rules when no id is defined BUG/MEDIUM: threads/vars: Fix deadlock in register_name BUG/MEDIUM: mworker: Set FD_CLOEXEC flag on log fd Cyril Bonté (2): BUG: MAJOR: lb_map: server map calculation broken BUG: MINOR: http: don't check http-request capture id when len is provided David Carlier (1): BUILD/MINOR: Makefile : enabling USE_CPU_AFFINITY Davor Ocelic (1): DOC/MINOR: intro: typo, wording, formatting fixes Emeric Brun (3): BUG/MEDIUM: ssl engines: Fix async engines fds were not considered to fix fd limit automatically. BUG/MEDIUM: checks: a down server going to maint remains definitely stucked on down state. BUG/MEDIUM: checks: a server passed in maint state was not forced down. Eric Salama (1): BUG/MEDIUM: lua: fix crash when using bogus mode in register_service() PiBa-NL (1): BUG/MEDIUM: email-alert: don't set server check status from a email-alert task Ryan O'Hara (2): CONTRIB: iprange: Fix compiler warning in iprange.c CONTRIB: halog: Fix compiler warnings in halog.c Thierry FOURNIER (2): DOC: notifications: add precisions about thread usage BUG/MEDIUM: lua/notification: memory leak Tim Duesterhus (2): MINOR: mworker: Update messages referencing exit-on-failure MINOR: mworker: Improve wording in `void mworker_wait()` Vincent Bernat (1): MINOR: systemd: remove comment about HAPROXY_STATS_SOCKET William Lallemand (1): BUG/MINOR: ssl: support tune.ssl.cachesize 0 again Willy Tarreau (35): BUG/MAJOR: hpack: don't pretend large headers fit in empty table BUG/MEDIUM: mworker: also close peers sockets in the master BUG/MEDIUM: peers: set NOLINGER on the outgoing stream interface BUG/MEDIUM: h2: fix handling of end of stream again MINOR: conn_stream: add new flag CS_FL_RCV_MORE to indicate pending data BUG/MEDIUM: stream-int: always set SI_FL_WAIT_ROOM on CS_FL_RCV_MORE BUG/MEDIUM: h2: automatically set CS_FL_RCV_MORE when the output buffer is full BUG/MEDIUM: h2: enable recv polling whenever demuxing is possible BUG/MEDIUM: h2: work around a connection API limitation BUG/MEDIUM: h2: debug incoming traffic in h2_wake() MINOR: h2: store the demux padding length in the h2c struct BUG/MEDIUM: h2: support uploading partial DATA frames MINOR: h2: don't demand that a DATA frame is complete before processing it BUG/MEDIUM: h2: don't switch the state to HREM before end of DATA frame BUG/MEDIUM: h2: don't close after the first DATA frame on tunnelled responses BUG/MEDIUM: http: don't disable lingering on requests with tunnelled responses BUG/MEDIUM: h2: fix stream limit enforcement BUG/MINOR: stream-int: don't try to receive again after receiving an EOS BUG/MINOR: h2: properly report a stream error on RST_STREAM MINOR: mux: add flags to describe a mux's capabilities MINOR: stream-int: set flag SI_FL_CLEAN_ABRT when mux supports clean aborts BUG/MEDIUM: stream: don't consider abortonclose on muxes which close cleanly MINOR: http: adjust the list of supposedly cacheable methods MINOR: http: update the list of cacheable status codes as per RFC7231 MINOR: http: start to compute the transaction's cacheability from the request BUG/MINOR: http: do not ignore cache-control: public BUG/MINOR: http: properly detect max-age=0 and s-maxage=0 in responses BUG/MINOR: cache: do not force the TX_CACHEABLE flag before checking cacheability MINOR: http: add a function to check request's cache-control header field BUG/MEDIUM: cache: do not try to retrieve host-less requests from the cache BUG/MEDIUM: cache: replace old object on store BUG/MEDIUM: cache: respect the request cache-control header BUG/MEDIUM: cache: don't cache the response on no-cache="set-cookie" BUG/MAJOR: connection: refine the situations where we don't send shutw() BUG/MEDIUM: checks: properly set servers to stopping state on 404 ---

