** Description changed: This bug tracks an update for the HAProxy package in the following Ubuntu releases to the versions below: * plucky (25.04): HAProxy 3.0.10 (See entries from 3.0.9 to 3.0.10). * noble (24.04): HAProxy 2.8.15 (See entries from 2.8.6 to 2.8.15). * jammy (22.04): HAProxy 2.4.29 (See entries from 2.4.15 to 2.4.29). These updates include bugfixes only following the SRU policy exception defined at https://documentation.ubuntu.com/sru/en/latest/reference/exception-HAProxy-Updates DISCLAIMER: For these updates, we are not upgrading to the latest patch version possible. Instead, we are sticking to the versions which include the fixes up to the version we currently ship in questing to avoid upgrade path regressions. [Upstream changes] HAProxy 3.0.10: https://www.haproxy.org/download/3.0/src/CHANGELOG HAProxy 2.8.15: https://www.haproxy.org/download/2.8/src/CHANGELOG HAProxy 2.4.29: https://www.haproxy.org/download/2.4/src/CHANGELOG Important bug fixes include: * noble (24.04) - HAProxy 2.8.15: - BUG/MAJOR: ssl_sock: Always clear retry flags in read/write functions - BUG/MAJOR: hlua: improper lock usage with hlua_ctx_resume() - BUG/MAJOR: server: fix stream crash due to deleted server - BUG/MAJOR: promex: fix crash on deleted server - BUG/MAJOR: connection: fix server used_conns with H2 + reuse safe - BUG/MAJOR: server: do not delete srv referenced by session - BUG/MAJOR: mux-h1: Wake SC to perform 0-copy forwarding in CLOSING state - BUG/MAJOR: quic: reject too large CRYPTO frames - BUG/MAJOR: ocsp: Separate refcount per instance and per store - BUG/MAJOR: quic: fix wrong packet building due to already acked frames * jammy (22.04) - HAProxy 2.4.29: - BUG/MAJOR: server: do not delete srv referenced by session - BUG/MAJOR: hlua: improper lock usage with hlua_ctx_resume() - BUG/MAJOR: mux-h2: Report a protocol error for any DATA frame before headers - BUG/MAJOR: mux-pt: Always destroy the backend connection on detach - BUG/MAJOR: connection: fix server used_conns with H2 + reuse safe [Test Plan] - TODO: link to the upstream CI pipelines demonstrating all tests are passing - TODO: if there are any non passing tests - explain why that is ok in this case + Since the upstream CI piplines do not run (publicly) for HAProxy 2.4, + 2.8, and 3.0, we triggered those using the upstream project github + workflows: + + HAproxy 2.4.29 (jammy): https://github.com/athos-ribeiro/haproxy-2.4/actions + HAproxy 2.8.15 (noble): https://github.com/athos-ribeiro/haproxy-2.8/actions + HAproxy 3.0.10 (plucky): https://github.com/athos-ribeiro/haproxy-3.0/actions + + There is an error in the spec compliance run for the 2.4 actions. + However, we can see in the actions matrix that upstream did add a "-Wno- + deprecated-declarations" when openssl3 is being used for the other test + runs (it seems it is just missing for this run). I patched the github + actions workflow to add the missing flag and the test passes, as one can + see in the 2.4 github repository above. A test build set is available at https://launchpad.net/~athos/+archive/ubuntu/haproxy/+packages. We ran the haproxy DEP8 test suite for the packages built in that PPA. Here are the results: * Results: - haproxy: jammy/haproxy/2.4.29-0ubuntu0.22.04.1~ppa1 [amd64] + ✅ haproxy on jammy for amd64 @ 11.10.25 01:21:25 Log️ 🗒️ - haproxy: jammy/haproxy/2.4.29-0ubuntu0.22.04.1~ppa1 [arm64] + ✅ haproxy on jammy for arm64 @ 11.10.25 01:21:38 Log️ 🗒️ - haproxy: jammy/haproxy/2.4.29-0ubuntu0.22.04.1~ppa1 [armhf] + ✅ haproxy on jammy for armhf @ 11.10.25 01:24:48 Log️ 🗒️ - haproxy: jammy/haproxy/2.4.29-0ubuntu0.22.04.1~ppa1 [i386] - haproxy: jammy/haproxy/2.4.29-0ubuntu0.22.04.1~ppa1 [ppc64el] + ✅ haproxy on jammy for ppc64el @ 11.10.25 01:21:58 Log️ 🗒️ - haproxy: jammy/haproxy/2.4.29-0ubuntu0.22.04.1~ppa1 [s390x] + ✅ haproxy on jammy for s390x @ 11.10.25 01:20:56 Log️ 🗒️ - haproxy: noble/haproxy/2.8.15-0ubuntu0.24.04.1~ppa1 [amd64] + ✅ haproxy on noble for amd64 @ 11.10.25 01:20:32 Log️ 🗒️ - haproxy: noble/haproxy/2.8.15-0ubuntu0.24.04.1~ppa1 [arm64] + ✅ haproxy on noble for arm64 @ 11.10.25 01:21:27 Log️ 🗒️ - haproxy: noble/haproxy/2.8.15-0ubuntu0.24.04.1~ppa1 [armhf] + ✅ haproxy on noble for armhf @ 11.10.25 01:23:59 Log️ 🗒️ - haproxy: noble/haproxy/2.8.15-0ubuntu0.24.04.1~ppa1 [i386] - haproxy: noble/haproxy/2.8.15-0ubuntu0.24.04.1~ppa1 [ppc64el] + ✅ haproxy on noble for ppc64el @ 11.10.25 01:21:23 Log️ 🗒️ - haproxy: noble/haproxy/2.8.15-0ubuntu0.24.04.1~ppa1 [s390x] + ✅ haproxy on noble for s390x @ 11.10.25 01:20:38 Log️ 🗒️ - haproxy: plucky/haproxy/3.0.10-0ubuntu0.25.04.1~ppa1 [amd64] + ✅ haproxy on plucky for amd64 @ 11.10.25 01:20:26 Log️ 🗒️ - haproxy: plucky/haproxy/3.0.10-0ubuntu0.25.04.1~ppa1 [arm64] + ✅ haproxy on plucky for arm64 @ 11.10.25 01:22:09 Log️ 🗒️ - haproxy: plucky/haproxy/3.0.10-0ubuntu0.25.04.1~ppa1 [armhf] + ✅ haproxy on plucky for armhf @ 11.10.25 01:23:55 Log️ 🗒️ - haproxy: plucky/haproxy/3.0.10-0ubuntu0.25.04.1~ppa1 [i386] - haproxy: plucky/haproxy/3.0.10-0ubuntu0.25.04.1~ppa1 [ppc64el] + ✅ haproxy on plucky for ppc64el @ 11.10.25 01:21:43 Log️ 🗒️ - haproxy: plucky/haproxy/3.0.10-0ubuntu0.25.04.1~ppa1 [s390x] + ✅ haproxy on plucky for s390x @ 11.10.25 01:20:36 Log️ 🗒️ [Regression Potential] HAProxy itself does not have many reverse dependencies, however, any upgrade is a risk to introduce some breakage to other packages. Whenever a test failure is detected, we will be on top of it and make sure it doesn't affect existing users. [Regression Potential - Changes Analysis (CA)] There is a significant number of low regression risk (as per upstream classification) functional changes. Moreover, some (fewer) bug fixes have a possible medium regression risk (again, as per upstream classification). The functional changes mentioned above were included because they are, in majority, needed by other entries which are bug fixes, i.e., these are functional changes needed to fix specific bugs. [Regression Potential - CA - Upstream changes classification criteria] https://github.com/haproxy/haproxy/blob/master/CONTRIBUTING#L632 describes the upstream guidelines for tagging the entries in the upstream changelog based on their purpose, importance, severity, etc. Below, I summarize the relevant bits of such guidelines. Patches "fixing a bug must have the 'BUG' tag", e.g., "BUG/MAJOR: description" "When the patch cannot be categorized, [...] only use a risk or complexity information [...]. This is commonly the case for new features". For instance, "MINOR: description" For MINOR tags, the patch "is safe enough to be backported to stable branches". Patches tagged MEDIUM "may cause unexpected regressions of low importance [...], the patch is safe but touches working areas". Patches tagged MAJOR carry a "major risk of hidden regression". No changes are tagged MAJOR without a bug classifier, i.e., all of the patches classified as MAJOR are BUG/MAJOR and will be discussed below. There is also a CRITICAL tag but no changes are tagged with it in the new candidate versions. [Regression Potential - CA - Impact] For the next Jammy update, we would upgrade HAPRoxy from 2.4.14 to 2.4.29. Among the changes, there are 5 bug fixes tagged as BUG/MAJOR and 15 uncategorized changes (potentially functional), where 13 are tagged as MINOR and 2 are tagged as MEDIUM. For the next Noble update, we would upgrade HAPRoxy from 2.8.5 to 2.8.15. This has the largest impactful change set for these proposed HAProxy upgrades. Among the changes, there are 12 bug fixes tagged as BUG/MAJOR and 80 uncategorized changes (potentially functional), where 74 are tagged as MINOR and 6 are tagged as MEDIUM. For the next Plucky update, we would upgrade HAPRoxy from 3.0.8 to 3.0.10. Among the changes, there are 21 uncategorized changes (potentially functional), where 20 are tagged as MINOR and 1 is tagged as MEDIUM. [Regression Potential - CA - Assessment] Below we discuss the changes with the greater regression potential (and the most relevant uncategorized ones, which may contain functional changes) All uncategorized MINOR changes are either adding new internal functions used by other bug fixes, or other internal changes where regressions are not expected. Hence, they will not be discussed. Unless they are discussed below changes tagged BUG/MAJOR had the MAJOR tag chosen due to the severity of the bugs and not due to the regression potential (and that is why they are not being discussed). Plucky (25.04): HAProxy 3.0.10: - MEDIUM: epoll: skip reports of stale file descriptors This was an internal change to make the poller stop reporting events for wrong file descriptions. Noble (24.04): HAProxy 2.8.15: - BUG/MAJOR: ssl_sock: Always clear retry flags in read/write functions This was done to mimic the behavior of the OpenSSL socket BIO - MEDIUM: mux-h2: allow to set the glitches threshold to kill a connection This introduces two new configuration keywords tune.h2.be.glitches-threshold tune.h2.fe.glitches-threshold to set a glitch threshold to eliminate bad behaving clients. The default value is set to zero, meaning no threshold is set, i.e., there is no change of behavior by default. - MEDIUM: debug: on panic, make the target thread automatically allocate its buf This is an improvement on how threads states are kept upon panic to improve debugging. This is a functional change, but helpful for debugging and only triggered upon panic. - MEDIUM: h1: Accept invalid T-E values with accept-invalid-http- response option For HTTP/1, accept invalid entries for chuncked Transfer-Encoding values when the accept-invalid-http-response is set. This is done to match the 2.4 behavior (jammy). - MEDIUM: ssl: initialize the SSL stack explicitly The SSL stack will always be fully, explicitly initialized. This was needed to fix issues with FIPS enabled servers. - MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD (take #2) This sets a default value for fd_hard_limit in case it is not set in the configuration to a reasonable vaule of 1048576. This is done to avoid having the process killed by its watchdog on systems where the limit is too high. The fd_hard_limit configuration has precedence over the new default value. Hence, any issues for special cases where it needs to be larger than the new default value, can be fixed by setting a value for fd_hard_limit. - MEDIUM: config: prevent communication with privileged ports Introduces a new configuration harden.reject_privileged_ports.{tcp|quic}. This is a security feature and the default is to not reject connections from privileged ports to avoid regressions (i.e., maintain the pre-upgrade behavior). Jammy (22.04): HAProxy 2.4.29: - MEDIUM: mux-h1: Handle MUX_SUBS_RECV flag in h1_ctl() and susbscribe for reads This internal change is needed to fix a bug to properly handle abortonclose when it is set on backend only. This was functional, non- buggy code being touched and thus the MEDIUM tag. - MEDIUM: ssl: initialize the SSL stack explicitly The SSL stack will always be fully, explicitly initialized. This was needed to fix issues with FIPS enabled servers. [Appendix A - Upstream potentially breaking changes list] Below you will find the list of changes I extracted from the full changelogs of the new candidate versions. I filtered the changelogs with the following command: $ cat $CHANGELOG_FILE | grep -E '^[^ ]|(- )?(MAJOR|CRIT)|- (MINOR|MEDIUM)' This selected only the unclassified (not bug fixing) changes and the bug fixing changes classified as BUG/MAJOR or BUG/CRITICAL. Plucky: 2025/04/22 : 3.0.10 - - MINOR: log: support "raw" logformat node typecast - - MINOR: task: add thread safe notification_new and notification_wake variants - - MINOR: fd: add a generation number to file descriptors - - MINOR: epoll: permit to mask certain specific events - - MEDIUM: epoll: skip reports of stale file descriptors - - MINOR: tools: also protect the library name resolution against concurrent accesses + - MINOR: log: support "raw" logformat node typecast + - MINOR: task: add thread safe notification_new and notification_wake variants + - MINOR: fd: add a generation number to file descriptors + - MINOR: epoll: permit to mask certain specific events + - MEDIUM: epoll: skip reports of stale file descriptors + - MINOR: tools: also protect the library name resolution against concurrent accesses 2025/03/20 : 3.0.9 - - MINOR: mux-quic: change return value of qcs_attach_sc() - - MINOR: startup: adjust alert messages, when capabilities are missed - - MINOR: clock: always use atomic ops for global_now_ms - - MINOR: tinfo: add a new thread flag to indicate a call from a sig handler - - MINOR: freq_ctr: provide non-blocking read functions - - MINOR: cfgparse/peers: provide more info when ignoring invalid "peer" or "server" lines - - MINOR: compiler: add a simple macro to concatenate resolved strings - - MINOR: compiler: add a new __decl_thread_var() macro to declare local variables - - MINOR: tools: resolve main() only once in resolve_sym_name() - - MINOR: tools: use only opportunistic symbols resolution - - MINOR: tinfo: split the signal handler report flags into 3 - - MINOR: cli: export cli_io_handler() to ease symbol resolution - - MINOR: tools: improve symbol resolution without dl_addr - - MINOR: tools: ease the declaration of known symbols in resolve_sym_name() - - MINOR: tools: teach resolve_sym_name() a few more common symbols + - MINOR: mux-quic: change return value of qcs_attach_sc() + - MINOR: startup: adjust alert messages, when capabilities are missed + - MINOR: clock: always use atomic ops for global_now_ms + - MINOR: tinfo: add a new thread flag to indicate a call from a sig handler + - MINOR: freq_ctr: provide non-blocking read functions + - MINOR: cfgparse/peers: provide more info when ignoring invalid "peer" or "server" lines + - MINOR: compiler: add a simple macro to concatenate resolved strings + - MINOR: compiler: add a new __decl_thread_var() macro to declare local variables + - MINOR: tools: resolve main() only once in resolve_sym_name() + - MINOR: tools: use only opportunistic symbols resolution + - MINOR: tinfo: split the signal handler report flags into 3 + - MINOR: cli: export cli_io_handler() to ease symbol resolution + - MINOR: tools: improve symbol resolution without dl_addr + - MINOR: tools: ease the declaration of known symbols in resolve_sym_name() + - MINOR: tools: teach resolve_sym_name() a few more common symbols Noble: 2025/04/22 : 2.8.15 - - MINOR: mux-quic: change return value of qcs_attach_sc() - - MINOR: clock: always use atomic ops for global_now_ms - - MINOR: tinfo: add a new thread flag to indicate a call from a sig handler - - MINOR: cfgparse/peers: provide more info when ignoring invalid "peer" or "server" lines - - MINOR: compiler: add a simple macro to concatenate resolved strings - - MINOR: compiler: add a new __decl_thread_var() macro to declare local variables - - MINOR: tools: resolve main() only once in resolve_sym_name() - - MINOR: tools: use only opportunistic symbols resolution - - MINOR: cli: export cli_io_handler() to ease symbol resolution - - MINOR: tools: improve symbol resolution without dl_addr - - MINOR: tools: ease the declaration of known symbols in resolve_sym_name() - - MINOR: tools: teach resolve_sym_name() a few more common symbols - - MINOR: task: add thread safe notification_new and notification_wake variants - - MINOR: tools: also protect the library name resolution against concurrent accesses + - MINOR: mux-quic: change return value of qcs_attach_sc() + - MINOR: clock: always use atomic ops for global_now_ms + - MINOR: tinfo: add a new thread flag to indicate a call from a sig handler + - MINOR: cfgparse/peers: provide more info when ignoring invalid "peer" or "server" lines + - MINOR: compiler: add a simple macro to concatenate resolved strings + - MINOR: compiler: add a new __decl_thread_var() macro to declare local variables + - MINOR: tools: resolve main() only once in resolve_sym_name() + - MINOR: tools: use only opportunistic symbols resolution + - MINOR: cli: export cli_io_handler() to ease symbol resolution + - MINOR: tools: improve symbol resolution without dl_addr + - MINOR: tools: ease the declaration of known symbols in resolve_sym_name() + - MINOR: tools: teach resolve_sym_name() a few more common symbols + - MINOR: task: add thread safe notification_new and notification_wake variants + - MINOR: tools: also protect the library name resolution against concurrent accesses 2025/01/29 : 2.8.14 - - MINOR: debug: make mark_tainted() return the previous value - - MINOR: chunk: drop the global thread_dump_buffer - - MINOR: debug: split ha_thread_dump() in two parts - - MINOR: debug: slightly change the thread_dump_pointer signification - - MINOR: debug: make ha_thread_dump_done() take the pointer to be used - - MINOR: debug: replace ha_thread_dump() with its two components - - MEDIUM: debug: on panic, make the target thread automatically allocate its buf - - MINOR: quic: notify connection layer on handshake completion - - MINOR: quic: simplify qc_parse_pkt_frms() return path - - MINOR: quic: use dynamically allocated frame on parsing - - MINOR: quic: extend return value of CRYPTO parsing - - MINOR: config: Alert about extra arguments for errorfile and errorloc - - BUG/MAJOR: quic: reject too large CRYPTO frames - - MINOR: quic: Add a BUG_ON() on quic_tx_packet refcount + - MINOR: debug: make mark_tainted() return the previous value + - MINOR: chunk: drop the global thread_dump_buffer + - MINOR: debug: split ha_thread_dump() in two parts + - MINOR: debug: slightly change the thread_dump_pointer signification + - MINOR: debug: make ha_thread_dump_done() take the pointer to be used + - MINOR: debug: replace ha_thread_dump() with its two components + - MEDIUM: debug: on panic, make the target thread automatically allocate its buf + - MINOR: quic: notify connection layer on handshake completion + - MINOR: quic: simplify qc_parse_pkt_frms() return path + - MINOR: quic: use dynamically allocated frame on parsing + - MINOR: quic: extend return value of CRYPTO parsing + - MINOR: config: Alert about extra arguments for errorfile and errorloc + - BUG/MAJOR: quic: reject too large CRYPTO frames + - MINOR: quic: Add a BUG_ON() on quic_tx_packet refcount 2024/12/12 : 2.8.13 - - MINOR: mux-h1: Set EOI on SE during demux when both side are in DONE state - - MINOR: task: define two new one-shot events for use with WOKEN_OTHER or MSG - - MINOR: activity/memprofile: offer a function to unregister stale info - - MINOR: quic: convert qc_stream_desc release field to flags - - MINOR: quic: implement function to check if STREAM is fully acked - - BUG/MAJOR: quic: fix wrong packet building due to already acked frames + - MINOR: mux-h1: Set EOI on SE during demux when both side are in DONE state + - MINOR: task: define two new one-shot events for use with WOKEN_OTHER or MSG + - MINOR: activity/memprofile: offer a function to unregister stale info + - MINOR: quic: convert qc_stream_desc release field to flags + - MINOR: quic: implement function to check if STREAM is fully acked + - BUG/MAJOR: quic: fix wrong packet building due to already acked frames 2024/11/08 : 2.8.12 - - BUG/MAJOR: ocsp: Separate refcount per instance and per store - - MEDIUM: h1: Accept invalid T-E values with accept-invalid-http-response option - - MINOR: activity/memprofile: always return "other" bin on NULL return address - - MINOR: pools: export the pools variable - - MINOR: cli: remove non-printable characters from 'debug dev fd' - - MINOR: stream: Save last evaluated rule on invalid yield + - BUG/MAJOR: ocsp: Separate refcount per instance and per store + - MEDIUM: h1: Accept invalid T-E values with accept-invalid-http-response option + - MINOR: activity/memprofile: always return "other" bin on NULL return address + - MINOR: pools: export the pools variable + - MINOR: cli: remove non-printable characters from 'debug dev fd' + - MINOR: stream: Save last evaluated rule on invalid yield 2024/09/19 : 2.8.11 - - MINOR: activity: make the memory profiling hash size configurable at build time - - MEDIUM: ssl: initialize the SSL stack explicitely - - MINOR: queue: add a function to check for TOCTOU after queueing - - MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD (take #2) - - MINOR: channel: implement ci_insert() function - - BUG/MAJOR: mux-h1: Wake SC to perform 0-copy forwarding in CLOSING state + - MINOR: activity: make the memory profiling hash size configurable at build time + - MEDIUM: ssl: initialize the SSL stack explicitely + - MINOR: queue: add a function to check for TOCTOU after queueing + - MEDIUM: init: set default for fd_hard_limit via DEFAULT_MAXFD (take #2) + - MINOR: channel: implement ci_insert() function + - BUG/MAJOR: mux-h1: Wake SC to perform 0-copy forwarding in CLOSING state 2024/06/14 : 2.8.10 - - MINOR: net_helper: Add support for floats/doubles. - - MINOR: log: add dup_logsrv() helper function - - BUG/MAJOR: quic: Crash with TLS_AES_128_CCM_SHA256 (libressl only) - - MEDIUM: config: prevent communication with privileged ports - - MINOR: session: rename private conns elements - - BUG/MAJOR: server: do not delete srv referenced by session - - BUG/MAJOR: connection: fix server used_conns with H2 + reuse safe + - MINOR: net_helper: Add support for floats/doubles. + - MINOR: log: add dup_logsrv() helper function + - BUG/MAJOR: quic: Crash with TLS_AES_128_CCM_SHA256 (libressl only) + - MEDIUM: config: prevent communication with privileged ports + - MINOR: session: rename private conns elements + - BUG/MAJOR: server: do not delete srv referenced by session + - BUG/MAJOR: connection: fix server used_conns with H2 + reuse safe 2024/04/05 : 2.8.9 2024/04/05 : 2.8.8 - - MINOR: mux-h2: add a counter of "glitches" on a connection - - MINOR: mux-h2: count excess of CONTINUATION frames as a glitch - - MINOR: mux-h2: count late reduction of INITIAL_WINDOW_SIZE as a glitch - - MINOR: mux-h2: always use h2c_report_glitch() - - MEDIUM: mux-h2: allow to set the glitches threshold to kill a connection - - MINOR: connection: add a new mux_ctl to report number of connection glitches - - MINOR: mux-h2: implement MUX_CTL_GET_GLITCHES - - MINOR: connection: add sample fetches to report per-connection glitches - - BUG/MAJOR: promex: fix crash on deleted server - - MINOR: quic: warn on bind on multiple addresses if no IP_PKTINFO support - - BUG/MAJOR: server: fix stream crash due to deleted server - - MINOR: hlua: Be able to disable logging from lua - - BUG/MAJOR: hlua: improper lock usage with hlua_ctx_resume() - - MINOR: hlua: use accessors for stream hlua ctx - - MINOR: server: allow cookie for dynamic servers - - MINOR: cli: Remove useless loop on commands to find unescaped semi-colon + - MINOR: mux-h2: add a counter of "glitches" on a connection + - MINOR: mux-h2: count excess of CONTINUATION frames as a glitch + - MINOR: mux-h2: count late reduction of INITIAL_WINDOW_SIZE as a glitch + - MINOR: mux-h2: always use h2c_report_glitch() + - MEDIUM: mux-h2: allow to set the glitches threshold to kill a connection + - MINOR: connection: add a new mux_ctl to report number of connection glitches + - MINOR: mux-h2: implement MUX_CTL_GET_GLITCHES + - MINOR: connection: add sample fetches to report per-connection glitches + - BUG/MAJOR: promex: fix crash on deleted server + - MINOR: quic: warn on bind on multiple addresses if no IP_PKTINFO support + - BUG/MAJOR: server: fix stream crash due to deleted server + - MINOR: hlua: Be able to disable logging from lua + - BUG/MAJOR: hlua: improper lock usage with hlua_ctx_resume() + - MINOR: hlua: use accessors for stream hlua ctx + - MINOR: server: allow cookie for dynamic servers + - MINOR: cli: Remove useless loop on commands to find unescaped semi-colon 2024/02/26 : 2.8.7 - - BUG/MAJOR: ssl/ocsp: crash with ocsp when old process exit or using ocsp CLI + - BUG/MAJOR: ssl/ocsp: crash with ocsp when old process exit or using ocsp CLI 2024/02/15 : 2.8.6 - - MINOR: stats: store the parent proxy in stats ctx (http) - - MINOR: h3: check connection error during sending - - MINOR: mux-h2: support limiting the total number of H2 streams per connection - - MINOR: compiler: add a new DO_NOT_FOLD() macro to prevent code folding - - MINOR: debug: make sure calls to ha_crash_now() are never merged - - MINOR: debug: make ABORT_NOW() store the caller's line number when using abort - - MINOR: debug: make BUG_ON() catch build errors even without DEBUG_STRICT - - MINOR: mux-h2/traces: also suggest invalid header upon parsing error - - MINOR: mux-h2/traces: explicitly show the error/refused stream states - - MINOR: mux-h2/traces: clarify the "rejected H2 request" event - - MINOR: mux-h2/traces: add a missing trace on connection WU with negative inc - - BUG/MAJOR: ssl_sock: Always clear retry flags in read/write functions - - MINOR: ssl: Use OCSP_CERTID instead of ckch_store in ckch_store_build_certid - - MINOR: quic: Stop hardcoding a scale shifting value (CUBIC_BETA_SCALE_FACTOR_SHIFT) - - MINOR: quic: extract qc_stream_buf free in a dedicated function - - MINOR: h3: add traces for stream sending function - - MINOR: quic: Stop using 1024th of a second. - - MINOR: quic: Update K CUBIC calculation (RFC 9438) - - MINOR: quic: Dynamic packet reordering threshold - - MINOR: quic: Add a counter for reordered packets - - MINOR: errors: ha_alert() and ha_warning() uses warn_exec_path() - - MINOR: ext-check: add an option to preserve environment variables + - MINOR: stats: store the parent proxy in stats ctx (http) + - MINOR: h3: check connection error during sending + - MINOR: mux-h2: support limiting the total number of H2 streams per connection + - MINOR: compiler: add a new DO_NOT_FOLD() macro to prevent code folding + - MINOR: debug: make sure calls to ha_crash_now() are never merged + - MINOR: debug: make ABORT_NOW() store the caller's line number when using abort + - MINOR: debug: make BUG_ON() catch build errors even without DEBUG_STRICT + - MINOR: mux-h2/traces: also suggest invalid header upon parsing error + - MINOR: mux-h2/traces: explicitly show the error/refused stream states + - MINOR: mux-h2/traces: clarify the "rejected H2 request" event + - MINOR: mux-h2/traces: add a missing trace on connection WU with negative inc + - BUG/MAJOR: ssl_sock: Always clear retry flags in read/write functions + - MINOR: ssl: Use OCSP_CERTID instead of ckch_store in ckch_store_build_certid + - MINOR: quic: Stop hardcoding a scale shifting value (CUBIC_BETA_SCALE_FACTOR_SHIFT) + - MINOR: quic: extract qc_stream_buf free in a dedicated function + - MINOR: h3: add traces for stream sending function + - MINOR: quic: Stop using 1024th of a second. + - MINOR: quic: Update K CUBIC calculation (RFC 9438) + - MINOR: quic: Dynamic packet reordering threshold + - MINOR: quic: Add a counter for reordered packets + - MINOR: errors: ha_alert() and ha_warning() uses warn_exec_path() + - MINOR: ext-check: add an option to preserve environment variables Jammy: 2025/04/22 : 2.4.29 - - MINOR: cli: export cli_io_handler() to ease symbol resolution + - MINOR: cli: export cli_io_handler() to ease symbol resolution 2024/11/08 : 2.4.28 - - MINOR: session: rename private conns elements - - BUG/MAJOR: server: do not delete srv referenced by session - - MEDIUM: ssl: initialize the SSL stack explicitely + - MINOR: session: rename private conns elements + - BUG/MAJOR: server: do not delete srv referenced by session + - MEDIUM: ssl: initialize the SSL stack explicitely 2024/06/18 : 2.4.27 - - MINOR: cli: Remove useless loop on commands to find unescaped semi-colon - - MINOR: hlua: don't dump empty entries in hlua_traceback() - - BUG/MAJOR: connection: fix server used_conns with H2 + reuse safe + - MINOR: cli: Remove useless loop on commands to find unescaped semi-colon + - MINOR: hlua: don't dump empty entries in hlua_traceback() + - BUG/MAJOR: connection: fix server used_conns with H2 + reuse safe 2024/04/05 : 2.4.26 - - BUG/MAJOR: ssl_sock: Always clear retry flags in read/write functions - - MINOR: hlua: Be able to disable logging from lua - - BUG/MAJOR: hlua: improper lock usage with hlua_ctx_resume() - - MINOR: hlua: use accessors for stream hlua ctx + - BUG/MAJOR: ssl_sock: Always clear retry flags in read/write functions + - MINOR: hlua: Be able to disable logging from lua + - BUG/MAJOR: hlua: improper lock usage with hlua_ctx_resume() + - MINOR: hlua: use accessors for stream hlua ctx 2023/12/14 : 2.4.25 - - MINOR: hlua: add hlua_stream_ctx_prepare helper function - - MINOR: buf: Add b_force_xfer() function - - BUG/MAJOR: mux-h2: Report a protocol error for any DATA frame before headers - - MINOR: pattern: fix pat_{parse,match}_ip() function comments - - MINOR: connection: Add a CTL flag to notify mux it should wait for reads again - - MEDIUM: mux-h1: Handle MUX_SUBS_RECV flag in h1_ctl() and susbscribe for reads - - MINOR: htx: Use a macro for overhead induced by HTX - - MINOR: channel: Add functions to get info on buffers and deal with HTX streams - - MINOR: stktable: add stktable_deinit function - + - MINOR: hlua: add hlua_stream_ctx_prepare helper function + - MINOR: buf: Add b_force_xfer() function + - BUG/MAJOR: mux-h2: Report a protocol error for any DATA frame before headers + - MINOR: pattern: fix pat_{parse,match}_ip() function comments + - MINOR: connection: Add a CTL flag to notify mux it should wait for reads again + - MEDIUM: mux-h1: Handle MUX_SUBS_RECV flag in h1_ctl() and susbscribe for reads + - MINOR: htx: Use a macro for overhead induced by HTX + - MINOR: channel: Add functions to get info on buffers and deal with HTX streams + - MINOR: stktable: add stktable_deinit function [Previous updates] - LP: #2012557 - LP: #2028418
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2112526 Title: Micro release updates for jammy, noble, and plucky To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/haproxy/+bug/2112526/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
