v3.4-dev2
📦 haproxyView on GitHub →
✨ 26 features🐛 19 fixes🔧 21 symbols
Summary
This release introduces several new features related to CPU topology, network protocols, and multiplexing, alongside numerous bug fixes and cleanup operations.
Migration Steps
- Turn the cpu policy configuration into a struct.
✨ New Features
- Added a "threads-per-core" keyword to cpu-policy.
- Added a "cpu-affinity" option.
- Added a new "max-threads-per-group" global keyword.
- Added the "per-thread" cpu_affinity option.
- Added the "per-ccx" cpu_affinity option.
- Added a secure implementation of memset.
- Added missing glitch count for non-decodable H2 headers.
- Performed a graceful close at 75% glitches threshold for H2.
- Implemented basic glitches support for H1.
- Performed a graceful close at 75% glitches threshold for H1.
- Acknowledged that proxy ID auto numbering starts at 2.
- Added new bind option "tcp-ss" to instruct the kernel to save the SYN.
- Supported a generic way to call getsockopt() on a connection.
- Implemented the get_opt() function.
- Implemented the fc_saved_syn sample fetch function.
- Added sample converters to decode ethernet frames.
- Added sample converters to decode IP packet headers.
- Added sample converters to decode TCP headers.
- Added ip.fp() to build a simplified fingerprint of a SYN.
- Prepared the ip.fp() converter to support more options.
- Added an option to ip.fp() to append the TTL to the fingerprint.
- Added an option to ip.fp() to append the source address.
- Kept only positive PIDs in proc_list.
- Extracted worker "show proc" row printer.
- Added support for lua 5.5.
- Added an optional directive for per-group affinity.
🐛 Bug Fixes
- Fixed ambiguous use of RX_F_INHERITED with shards in mworker/listener.
- Properly detected client abort when forwarding response (v2) in http-ana.
- Don't report abort from SC if read0 was already received in stconn.
- Don't try to use hystart if not implemented in quic.
- Do not remove CO_FL_SESS_IDLE in assign_server() in backend.
- Synchronized all conditions to create a new backend stream in mux-h2.
- Fixed a TLS stack usage in quic.
- Fixed error when no tests are skipped.
- Fixed -Wlogical-not-parentheses build with clang in cpu-topo.
- Don't forget to reset visited_ccx in cpu-topo.
- Set the correct generation ID in pat_ref_append().
- Fixed the conn_retries check for TFO in backend.
- Inspected request not response buffer to check for TFO in backend.
- Fixed show proc pagination using reload counter in mworker/cli.
- Properly handled shutdown when trying to get a line in peers.
- Took care to update <kop> value during zero-copy forwarding in mux-h1.
- Moved data from <kip> to <kop> during zero-copy forwarding in stconn.
- Can't use signals after a failed reload in mworker.
- Fixed deprecated warning for window size keyword in quic.