Changelog

version 3.1r1



2025/02/19 : 3.1r1 (1.0.0-345.233) - DOC: option redispatch should mention persist options - BUG/MINOR: stats-json: Define JSON_INT_MAX as a signed integer - BUG/MINOR: flt-trace: Support only one name option - BUG/MINOR: auth: Fix a leak on error path when parsing user's groups - BUG/MINOR: config/userlist: Support one 'users' option for 'group' directive - BUG/MINOR: cli: Fix a possible infinite loop in _getsocks() - BUG/MINOR: cli: Fix memory leak on error for _getsocks command - BUG/MINOR: cli: Don't set SE flags from the cli applet - MINOR: mux-spop: Set SPOP_CF_ERROR flag on connection error only - MINOR: mux-spop: Report EOI on the SE when a ACK is received for a stream - MINOR: flt-spoe: Report end of input immediately after applet init - BUG/MEDIUM: flt-spoe: Properly handle end of stream from the SPOE applet - BUG/MEDIUM: applet: Don't pretend to have more data to handle EOI/EOS/ERROR - BUG/MEDIUM: flt-spoe: Set/test applet flags instead of SE flags from I/O handler - BUG/MINOR: http-check: Don't pretend a C-L heeader is set before adding it - BUG/MINOR: tcp-rules: Don't forward close during tcp-response content rules eval - BUG/MEDIUM: mux-fcgi: Properly handle read0 on partial records - DOC: htx: clarify <mark> parameter for htx_xfer_blks() - BUG/MEDIUM: htx: wrong count computation in htx_xfer_blks() - MEDIUM: epoll: skip reports of stale file descriptors - DEBUG: epoll: store and compare the FD's generation count with reported event - MINOR: fd: add a generation number to file descriptors - DEBUG: fd: add a counter of takeovers of an FD since it was last opened - BUG/MEDIUM: chunk: make sure to flush the trash pool before resizing - MINOR: quic: adapt credit based pacing to BBR - MINOR: quic: remove unused pacing burst in bind_conf/quic_cc_path - MEDIUM: quic: use dynamic credit for pacing - MEDIUM: mux-quic: reduce pacing CPU usage with passive wait - MEDIUM: quic: implement credit based pacing - MINOR: mux-quic: increment pacing retry counter on expired - MINOR: quic: rename pacing_rate cb to pacing_inter - BUG/MINOR: stktable: invalid use of stkctr_set_entry() with mixed table types - BUG/MINOR: mux-h2: Properly handle full or truncated HTX messages on shut - REGTESTS: Fix truncated.vtc to send 0-CRLF - BUG/MINOR: mux-quic: prevent crash after MUX init failure - BUG/MINOR: quic: prevent crash on conn access after MUX init failure - BUG/MINOR: fcgi: Don't set the status to 302 if it is already set - BUG/MEDIUM: filters: Handle filters registered on data with no payload callback - BUG/MINOR: cli: Wait for the last ACK when FDs are xferred from the old worker - BUG/MEDIUM: cli: Be sure to drop all input data in END state - BUG/MINOR: ssl/cli: "show ssl crt-list" lacks sigals - BUG/MINOR: ssl/cli: "show ssl crt-list" lacks client-sigals - BUG/MEDIUM: fd: mark FD transferred to another process as FD_CLONED - BUG/MINOR: mworker: post_section_parser for the last section in discovery - BUG/MINOR: mworker: section ignored in discovery after a post_section_parser - BUG/MINOR: quic: fix CRYPTO payload size calcul for encoding - BUG/MINOR: quic: reserve length field for long header encoding - BUG/MEDIUM: debug: close a possible race between thread dump and panic() - BUG/MEDIUM: ssl: chosing correct certificate using RSA-PSS with TLSv1.3 - BUILD: ssl: more cleaner approach to WolfSSL without renegotiation - BUILD: ssl: allow to build without the renegotiation API of WolfSSL - HAPEE: ssl: enable USE_ENGINE automatically when OpenSSL < 3.0 - BUG/MINOR: startup: hap_register_feature() fix for partial feature name - MINOR: startup: allow hap_register_feature() to enable a feature in the list - MINOR: hapee/WURFL: transfer error status from the _wurfl_reload() function - MINOR: hapee/WURFL: added live update database function - MINOR: hapee/WURFL: added custom API log function - MINOR: hapee/WURFL: added function to check correct module initialization - BUG/MINOR: hapee/WURFL: corrected version check of used wurfl library - MINOR: hapee/da: alert in case of incorrect data version - BUG/MINOR: hapee/da: enabling use of precompiled json database in 'deviceatlas-json-file' - BUG/MINOR: hapee/da: fixed bug when using binary version of database - BUG/BUILD: hapee/da: added preprocessed source code generation for *.cpp files - BUILD: hapee/da: repaired build in case of using old DeviceAtlas library - MINOR: hapee/da: add function that allow data reload - MINOR: hapee/da: add spin locking - MINOR: hapee/da: add support for loading a precompiled json data - MEDIUM: hapee/da: Revert "MEDIUM: da: update module to handle schedule mode." - MEDIUM: hapee/51d: support data reload for 51Degrees V4 engine - MINOR: hapee/51d: add function that returns path to 51Degrees data file - MINOR: hapee/51d: add function that allow data reload - BUG/MINOR: hapee/51d: add spin locking - BUILD: hapee/51d: fix error when building with 51Degrees enabled - BUG/MEDIUM: hapee/51d: fix a segfault on exit when 51d configuration is not loaded - MEDIUM: hapee/51d: use fiftyoneDegreesProvider to access the pool and dataset - MINOR: hapee: Update backports list - MINOR: epoll: permit to mask certain specific events - CLEANUP: quic: remove unused prototype - BUG/MINOR: stream: Properly handle "on-marked-up shutdown-backup-sessions" - BUG/MINOR: ssl: put ssl_sock_load_ca under SSL_NO_GENERATE_CERTIFICATES - BUG/MINOR: quic: do not increase congestion window if app limited - BUG/MEDIUM: mux-h1: Properly close H1C if an error is reported before sending data - BUILD: quic: Move an ASSUME_NONNULL() for variable which is not null - MINOR: quic: Add a BUG_ON() on quic_tx_packet refcount - BUG/MINOR: quic: ensure a detached coalesced packet can't access its neighbours - BUG/MINOR: init: set HAPROXY_STARTUP_VERSION from the variable, not the macro - BUG/MAJOR: log/sink: possible sink collision in sink_new_from_srv() - BUG/MAJOR: quic: reject too large CRYPTO frames - BUG/MEDIUM: promex: Use right context pointers to dump backends extra-counters - BUG/MEDIUM: stktable: fix missing lock on some table converters - BUG/MINOR: quic: reject NEW_TOKEN frames from clients - BUG/MINOR: stktable: fix big-endian compatiblity in smp_to_stkey() - BUG/MEDIUM: hapee/modules: fix invalid pool_free() in stream_new() - BUILD: hapee: ERR=1 broken with cfgcond.c - MINOR: hapee: add a .hapee directory to list backporting notes - BUG/MEDIUM: h1-htx: Properly handle bodyless messages - BUG/MEDIUM: promex/resolvers: Don't dump metrics if no nameserver is defined - BUG/MINOR: mux-quic: handle closure of uni-stream - MINOR: mux-quic: change return value of qcs_attach_sc() - MINOR: mux-quic: add traces on sd attach - BUG/MINOR: mux-quic: fix wakeup on qcc_set_error() - MINOR: config: Alert about extra arguments for errorfile and errorloc - BUG/MINOR: log: Allow to use if/unless conditionnals for do-log action - BUG/MEDIUM: mux-quic: do not attach on already closed stream - BUG/MAJOR: mux-quic: properly fix BUG_ON on empty STREAM emission - Revert "BUG/MAJOR: mux-quic: fix BUG_ON on empty STREAM emission" - BUG/MEDIUM: mux-h2: Count copied data when looping on RX bufs in h2_rcv_buf() - BUG/MAJOR: mux-quic: fix BUG_ON on empty STREAM emission - DOC: config: add missing "track-sc0" in action keywords matrix - BUG/MINOR: stats: fix segfault caused by uninitialized value in "show schema json" - BUG/MEDIUM: queue: Make process_srv_queue return the number of streams - MINOR: hlua: rename "tune.lua.preserve-smp-bool" to "tune.lua.bool-sample-conversion" - BUG/MINOR: h2/rhttp: fix HTTP2 conn counters on reverse - CLEANUP: mux-quic: remove dead err label in qcc_build_frms() - BUG/MEDIUM: mux-quic: prevent BUG_ON() by refreshing frms on MAX_DATA - REGTESTS: fix lua-based regtests using tune.lua.smp-preserve-bool - MINOR: hlua: add option to preserve bool type from smp to lua - DOC: config: add "tune.lua.burst-timeout" to the list of global parameters - DOC: config: reorder "tune.lua.*" keywords by alphabetical order - DOC: config: add example for server "track" keyword - MINOR: mux-quic: hide traces when woken up on pacing only - MINOR: trace: implement tracing disabling API - MEDIUM: mux-quic: remove pacing specific code on qcc_io_cb - MEDIUM/OPTIM: mux-quic: do not rebuild frms list on every send - MINOR: mux-quic: split STREAM and RS/SS emission - MINOR: mux-quic: extract code to build STREAM frames list - MEDIUM/OPTIM: mux-quic: implement purg_list - MEDIUM/OPTIM: mux-quic: define a recv_list for demux resumption - MINOR: mux-quic: refactor wait-for-handshake support - MINOR: quic: add traces - CLEANUP: mux-quic: remove unused qcc member send_retry_list - BUG/MEDIUM: mux-quic: do not mix qcc_io_send() return codes with pacing - BUILD: debug: only dump/reset glitch counters when really defined - BUG/MEDIUM: queues: Do not use pendconn_grab_from_px(). - BUG/MEDIUM: queues: Make sure we call process_srv_queue() when leaving - BUG/MEDIUM: stconn: Only consider I/O timers to update stream's expiration date - CLEANUP: quic: Rename some BBR functions in relation with bw probing - BUG/MINOR: quic: missing Startup accelerating probing bw states - REGTESTS: ssl: add a PEM with mix of LF and CRLF line endings - BUG/MINOR: cli: cli_snd_buf: preserve \r\n for payload lines - BUG/MINOR: quic: too permissive exit condition for high loss detection in Startup (BBR) - BUG/MINOR: quic: fix the wrong tracked recovery start time value - CLEANUP: quic: remove a wrong comment about ->app_limited (drs) - MINOR: quic: reduce the private data size of QUIC cc algos - BUG/MINOR: quic: reduce packet losses at least during ProbeBW_CRUISE (BBR) - BUG/MINOR: quic: underflow issue for bbr_inflight_hi_from_lost_packet() - BUG/MINOR: quic: remove max_bw filter from delivery rate sampling - BUG/MINOR: quic: wrong bbr_target_inflight() implementation - BUG/MINOR: quic: fix BBB max bandwidth oscillation issue. - BUG/MINOR: quic: wrong logical statement in in_recovery_period() (BBR) - MINOR: window_filter: rely on the time to update the filter samples (QUIC/BBR) - MINOR: hapee: add the module() predicate - MINOR: ssl/cli: add -A to the 'show ssl sni' command description - MINOR: ssl/cli: allow to filter expired certificates with 'show ssl sni' - MINOR: ssl: add utils functions to extract X509 notAfter date - MINOR: ssl/cli: add negative filters to "show ssl sni" - CLEANUP: ssl: fix comment in 'show ssl sni' - DOC: management: fix typos and paragraph ordering in 'show ssl sni' - MEDIUM: ssl/cli: "show ssl sni" list the loaded SNI in frontends - MINOR: ssl: add notBefore and notAfter utility functions - BUG/MINOR: hlua_fcn: restore server pairs iterator pointer consistency - BUG/MINOR: server-state: Fix expiration date of srvrq_check tasks - BUG/MINOR: http-fetch: Ignore empty argument string for query() - BUG/MEDIUM: stats/server: use watcher to track server during stats dump - MINOR: list: define a watcher type - BUG/MINOR: stats: decrement srv refcount on stats-file release - BUG/MINOR: resolvers: handle a possible strdup() failure - BUG/MINOR: ssl_crtlist: handle a possible strdup() failure - BUG/MINOR: namespace: handle a possible strdup() failure - BUG/MEDIUM: mworker: report status, if daemonized master fails - BUG/MEDIUM: startup: report status if daemonized process fails - BUG/MEDIUM: startup: don't daemonize if started with -c - BUG/MINOR: startup: fix error path for master, if can't open pidfile - BUG/MINOR: mworker: fix -D -W -sf/-st modes - BUG/MINOR: mworker: don't save program PIDs in oldpids - BUG/MINOR: mux-h2: fix expression when detecting excess of CONTINUATION frames - MINOR: mux-h2/glitches: add a description to the H2 glitches - CLEANUP: mux-h2/traces: reword certain ambiguous traces - MINOR: mux-h2/traces: add a missing trace on negative initial window size - BUILD: debug: fix build issues in COUNT_IF() with -Wunused-value - BUG/MINOR: debug: COUNT_IF() should return true/false - DOC: config: fix confusing init-state examples - BUG/MINOR: config: Fix parsing of accept-invalid-http-{request,response} - BUG/MEDIUM: mux-h2: make sure not to touch dummy streams when sending WU - BUG/MINOR: quic: remove startup alert if GSO unsupported - BUG/MINOR: quic: remove startup alert if conn socket-owner unsupported - BUG/MEDIUM: mux-quic: remove pacing status when everything is sent - BUG/MINOR: init: do not call fork_poller() for non-forked processes - BUG/MEDIUM: init: make sure only daemonized processes change their session - BUG/MINOR: quic: fix bbr_inflight() calls with wrong gain value - BUG/MINOR: startup: fix pidfile creation - BUG/MINOR: startup: close pidfd and free global.pidfile in handle_pidfile() - BUG/MINOR: signal: register default handler for SIGINT in signal_init() - BUILD: quic: fix a build error about an non initialized timestamp - BUG/MINOR: h1-htx: Use default reason if not set when formatting the response - BUG/MEDIUM: http-ana: Reset request flag about data sent to perform a L7 retry - BUG/MEDIUM: quic: prevent stream freeze on pacing - BUG/MEDIUM: event_hdl: fix uninitialized value in async mode when no data is provided - BUG/MINOR: improve BBR throughput on very fast links - BUG/MINOR: log: fix lf_text() behavior with empty string - MINOR: proxy: Add support of 421-Misdirected-Request in retry-on status - BUG/MEDIUM: sock: Remove FD_POLL_HUP during connect() if FD_POLL_ERR is not set - MINOR: hapee/modules: report the per-stream allocated size for each module - BUG/MEDIUM: hapee: prevent the module file name being overwritten - MEDIUM: hapee: HAPEE_MODULE_DECLARE() allows to declare an HAPEE module - BUG/MINOR: hapee: Makefile: bad substitution for MODVERSION variable - BUG/MINOR: hapee: relax __vers symbol check - BUG/MINOR: hapee/modules: can't load modules with USE_OBSOLETE_LINKER - BUG/MINOR: hapee: remove leading \n on __vers error - MEDIUM: hapee: warn on unsupported initcalls - BUG/MINOR: hapee: forbid to load a module twice - HAPEE: udp: update structs and functions required for the UDP module - HAPEE: makefile: automatically build objects in addons/hapee_* - HAPEE: makefile: update the cleanup rule to also remove *.i from addons - HAPEE: addons: quic CID in -vv - HAPEE: addons: adds quic CID generator to interop with packetshield - MEDIUM: hapee: does not pass OPTION_LDFLAGS to modules - MINOR: hapee/modules: check if we generate the API hash correctly - BUG/MINOR: hapee/modules: adjust include match() in gen-modules-config-h.awk - BUG/MINOR: hapee/modules: initialize the module head list - BUILD: hapee/modules: select either md5 or md5sum - MEDIUM: hapee/modules: load the STG_REGISTER initcalls - BUG/MINOR: hapee/modules: display detailed error message on mod_init() failure - MINOR: hapee/modules: add a new label MODULES_LOCK to the lock_label enum - MINOR: hapee/modules: add the ability to register variable and functions. - MEDIUM: hapee/modules: 'modules list' on the cli shows currently loaded modules - MINOR: hapee/modules: terminate properly loaded modules if possible - MEDIUM: hapee/modules: add memory reservation support for the modules - MINOR: hapee: change URLs for 3.1r1 - BUILD: hapee/modules: update HAPEE version macro to 3.1r1 - BUILD: hapee/modules: add macros to compute numerical value of a HAPEE version - BUILD: hapee/modules: add version of the module in the defines - MEDIUM: hapee/modules: add modules support


HAPEE-LB 3.1r1 – Changelog