Change8

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

  1. 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.

Affected Symbols