From: Willy Tarreau Date: Sat, 16 Apr 2022 10:15:47 +0000 (+0200) Subject: [RELEASE] Released version 2.6-dev6 X-Git-Tag: v2.6-dev6^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8b1065b6b9c879ba2dcd37bc30d6c84cb2254dc;p=thirdparty%2Fhaproxy.git [RELEASE] Released version 2.6-dev6 Released version 2.6-dev6 with the following main changes : - CLEANUP: connection: reduce the with of the mux dump output - CI: Update to actions/checkout@v3 - CI: Update to actions/cache@v3 - DOC: adjust QUIC instruction in INSTALL - BUG/MINOR: stats: define the description' background color in dark color scheme - BUILD: ssl: add USE_ENGINE and disable the openssl engine by default - BUILD: makefile: pass USE_ENGINE to cflags - BUILD: xprt-quic: replace ERR_func_error_string() with ERR_peek_error_func() - DOC: install: document the fact that SSL engines are not enabled by default - CI: github actions: disable -Wno-deprecated - BUILD: makefile: silence unbearable OpenSSL deprecation warnings - MINOR: sock: check configured limits at the sock layer, not the listener's - MINOR: connection: add a new flag CO_FL_FDLESS on fd-less connections - MINOR: connection: add conn_fd() to retrieve the FD only when it exists - MINOR: stream: only dump connections' FDs when they are valid - MINOR: connection: use conn_fd() when displaying connection errors - MINOR: connection: skip FD-based syscalls for FD-less connections - MEDIUM: connection: panic when calling FD-specific functions on FD-less conns - MINOR: mux-quic: properly set the flags and name fields - MINOR: connection: rearrange conn_get_src/dst to be a bit more extensible - MINOR: protocol: add get_src() and get_dst() at the protocol level - MINOR: quic-sock: provide a pair of get_src/get_dst functions - MEDIUM: ssl: improve retrieval of ssl_sock_ctx and SSL detection - MEDIUM: ssl: stop using conn->xprt_ctx to access the ssl_sock_ctx - MEDIUM: xprt-quic: implement get_ssl_sock_ctx() - MEDIUM: quic: move conn->qc into conn->handle - BUILD: ssl: fix build warning with previous changes to ssl_sock_ctx - BUILD: ssl: add an unchecked version of __conn_get_ssl_sock_ctx() - MINOR: ssl: refine the error testing for fc_err and fc_err_str - BUG/MINOR: sock: do not double-close the accepted socket on the error path - CI: cirrus: switch to FreeBSD-13.0 - MINOR: log: add '~' to frontend when the transport layer provides SSL - BUILD/DEBUG: lru: fix printf format in debug code - BUILD: peers: adjust some printf format to silence cppcheck - BUILD/DEBUG: hpack-tbl: fix format string in standalone debug code - BUILD/DEBUG: hpack: use unsigned int in printf format in debug code - BUILD: halog: fix some incorrect signs in printf formats for integers - BUG/MINOR: h3: fix build with DEBUG_H3 - BUG/MINOR: mux-h2: do not send GOAWAY if SETTINGS were not sent - BUG/MINOR: cache: do not display expired entries in "show cache" - BUG/MINOR: mux-h1: Don't release unallocated CS on error path - MINOR: applet: Make .init callback more generic - MINOR: conn-stream: Add flags to set the type of the endpoint - MEDIUM: applet: Set the appctx owner during allocation - MAJOR: conn-stream: Invert conn-stream endpoint and its context - REORG: Initialize the conn-stream by hand in cs_init() - MEDIUM: conn-stream: Add an endpoint structure in the conn-stream - MINOR: conn-stream: Move some CS flags to the endpoint - MEDIUM: conn-stream: Be able to pass endpoint to create a conn-stream - MEDIUM: conn-stream: Pre-allocate endpoint to create CS from muxes and applets - REORG: applet: Uninline appctx_new function - MAJOR: conn-stream: Share endpoint struct between the CS and the mux/applet - MEDIUM: conn-stream: Move remaning flags from CS to endpoint - MINOR: mux-pt: Rely on the endpoint instead of the conn-stream when possible - MINOR: conn-stream: Add ISBACK conn-stream flag - MINOR: conn-stream: Add header file with util functions related to conn-streams - MEDIUM: tree-wide: Use CS util functions instead of SI ones - MINOR: stream-int/txn: Move buffer for L7 retries in the HTTP transaction - CLEANUP: http-ana: Remove http_alloc_txn() function - MINOR: stream-int/stream: Move conn_retries counter in the stream - MINOR: stream: Simplify retries counter calculation - MEDIUM: stream-int/conn-stream: Move src/dst addresses in the conn-stream - MINOR: stream-int/conn-stream: Move half-close timeout in the conn-stream - MEDIUM: stream-int/stream: Use connect expiration instead of SI expiration - MINOR: stream-int/conn-stream: Report error to the CS instead of the SI - MEDIUM: conn-stream: Use endpoint error instead of conn-stream error - MINOR: channel: Use conn-streams as channel producer and consumer - MINOR: stream-int: Remove SI_FL_KILL_CON to rely on conn-stream endpoint only - MINOR: mux-h2/mux-fcgi: Fully rely on CS_EP_KILL_CONN - MINOR: stream-int: Remove SI_FL_NOLINGER/NOHALF to rely on CS flags instead - MINOR: stream-int: Remove SI_FL_DONT_WAKE to rely on CS flags instead - MINOR: stream-int: Remove SI_FL_INDEP_STR to rely on CS flags instead - MINOR: stream-int: Remove SI_FL_SRC_ADDR to rely on stream flags instead - CLEANUP: stream-int: Remove unused SI_FL_CLEAN_ABRT flag - MINOR: stream: Only save previous connection state for the server side - MEDIUM: stream-int: Move SI err_type in the stream - MEDIUM: stream-int/conn-stream: Move stream-interface state in the conn-stream - MINOR: stream-int/stream: Move si_retnclose() in the stream scope - MINOR: stream-int/backend: Move si_connect() in the backend scope - MINOR: stream-int/conn-stream: Move si_conn_ready() in the conn-stream scope - MINOR: conn-stream/connection: Move SHR/SHW modes in the connection scope - MEDIUM: conn-stream: Be prepared to fail to attach a cs to a mux - MEDIUM: stream-int/conn-stream: Handle I/O subscriptions in the conn-stream - MINOR: conn-stream: Rename CS functions dedicated to connections - MINOR: stream-int/conn-stream: Move si_shut* and si_chk* in conn-stream scope - MEDIUM: stream-int/conn-stream: Move si_ops in the conn-stream scope - MINOR: applet: Use the CS to register and release applets instead of SI - MINOR: connection: unconst mux's get_fist_cs() callback function - MINOR: stream-int/connection: Move conn_si_send_proxy() in the connection scope - REORG: stream-int: Export si_cs_recv(), si_cs_send() and si_cs_process() - REORG: stream-int: Move si_is_conn_error() in the header file - REORG: conn-stream: Move cs_shut* and cs_chk* in cs_utils - REORG: conn-stream: Move cs_app_ops in conn_stream.c - MINOR: stream-int-conn-stream: Move si_update_* in conn-stream scope - MINOR: stream-int/stream: Move si_update_both in stream scope - MEDIUM: conn-stream/applet: Add a data callback for applets - MINOR: stream-int/conn-stream: Move stream_int_read0() in the conn-stream scope - MINOR: stream-int/conn-stream: Move stream_int_notify() in the conn-stream scope - MINOR: stream-int/conn-stream: Move si_cs_io_cb() in the conn-stream scope - MINOR: stream-int/conn-stream: Move si_sync_recv/send() in conn-stream scope - MINOR: conn-stream: Move si_conn_cb in the conn-stream scope - MINOR: stream-int/conn-stream Move si_is_conn_error() in the conn-stream scope - MINOR: stream-int/conn-stream: Move si_alloc_ibuf() in the conn-stream scope - CLEANUP: stream-int: Remove unused SI functions - MEDIUM: stream-int/conn-stream: Move blocking flags from SI to CS - MEDIUM: stream-int/conn-stream: Move I/O functions to conn-stream - REORG: stream-int/conn-stream: Move remaining functions to conn-stream - MINOR: stream: Use conn-stream to report server error - MINOR: http-ana: Use CS to perform L7 retries - MEDIUM: stream: Don't use the stream-int anymore in process_stream() - MINOR: conn-stream: Remove the stream-interface from the conn-stream - DEV: flags: No longer dump SI flags - CLEANUP: tree-wide: Remove any ref to stream-interfaces - CLEANUP: conn-stream: Don't export internal functions - DOC: conn-stream: Add comments on functions of the new CS api - MEDIUM: check: Use a new conn-stream for each health-check run - CLEANUP: muxes: Remove MX_FL_CLEAN_ABRT flag - MINOR: conn-stream: Use a dedicated function to conditionally remove a CS - CLEANUP: conn-stream: rename cs_register_applet() to cs_applet_create() - MINOR: muxes: Improve show_fd callbacks to dump endpoint flags - MINOR: mux-h1: Rely on the endpoint instead of the conn-stream when possible - BUG/MINOR: quic: Avoid starting the mux if no ALPN sent by the client - BUILD: debug: mark the __start_mem_stats/__stop_mem_stats symbols as weak - BUILD: initcall: mark the __start_i_* symbols as weak, not global - BUG/MINOR: mux-h2: do not use timeout http-keep-alive on backend side - BUG/MINOR: mux-h2: use timeout http-request as a fallback for http-keep-alive - MINOR: muxes: Don't expect to have a mux without connection in destroy callback - MINOR: muxes: Don't handle proto upgrade for muxes not supporting it - MINOR: muxes: Don't expect to call release function with no mux defined - MINOR: conn-stream: Use unsafe functions to get conn/appctx in cs_detach_endp - BUG/MEDIUM: mux-h1: Don't request more room on partial trailers - BUILD: http-client: Avoid dead code when compiled without SSL support - BUG/MINOR: mux-quic: prevent a crash in session_free on mux.destroy - BUG/MINOR: quic-sock: do not double free session on conn init failure - BUG/MINOR: quic: fix return value for error in start - MINOR: quic: emit CONNECTION_CLOSE on app init error - BUILD: sched: workaround crazy and dangerous warning in Clang 14 - BUILD: compiler: use a more portable set of asm(".weak") statements - BUG/MEDIUM: stream: do not abort connection setup too early - CLEANUP: extcheck: do not needlessly preset the server's address/port - MINOR: extcheck: fill in the server's UNIX socket address when known - BUG/MEDIUM: connection: Don't crush context pointer location if it is a CS - BUG/MEDIUM: quic: properly clean frames on stream free - BUG/MEDIUM: fcgi-app: Use http_msg flags to know if C-L header can be added - BUG/MEDIUM: compression: Don't forget to update htx_sl and http_msg flags - MINOR: tcp_sample: clarifying samples support per os, for further expansion. - MINOR: tcp_sample: extend support for get_tcp_info to macOs. - SCRIPTS: announce-release: update the doc's URL - DOC: lua: update a few doc URLs - SCRIPTS: announce-release: add shortened links to pending issues --- diff --git a/CHANGELOG b/CHANGELOG index 66a11be2a0..589a27f578 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,158 @@ ChangeLog : =========== +2022/04/16 : 2.6-dev6 + - CLEANUP: connection: reduce the with of the mux dump output + - CI: Update to actions/checkout@v3 + - CI: Update to actions/cache@v3 + - DOC: adjust QUIC instruction in INSTALL + - BUG/MINOR: stats: define the description' background color in dark color scheme + - BUILD: ssl: add USE_ENGINE and disable the openssl engine by default + - BUILD: makefile: pass USE_ENGINE to cflags + - BUILD: xprt-quic: replace ERR_func_error_string() with ERR_peek_error_func() + - DOC: install: document the fact that SSL engines are not enabled by default + - CI: github actions: disable -Wno-deprecated + - BUILD: makefile: silence unbearable OpenSSL deprecation warnings + - MINOR: sock: check configured limits at the sock layer, not the listener's + - MINOR: connection: add a new flag CO_FL_FDLESS on fd-less connections + - MINOR: connection: add conn_fd() to retrieve the FD only when it exists + - MINOR: stream: only dump connections' FDs when they are valid + - MINOR: connection: use conn_fd() when displaying connection errors + - MINOR: connection: skip FD-based syscalls for FD-less connections + - MEDIUM: connection: panic when calling FD-specific functions on FD-less conns + - MINOR: mux-quic: properly set the flags and name fields + - MINOR: connection: rearrange conn_get_src/dst to be a bit more extensible + - MINOR: protocol: add get_src() and get_dst() at the protocol level + - MINOR: quic-sock: provide a pair of get_src/get_dst functions + - MEDIUM: ssl: improve retrieval of ssl_sock_ctx and SSL detection + - MEDIUM: ssl: stop using conn->xprt_ctx to access the ssl_sock_ctx + - MEDIUM: xprt-quic: implement get_ssl_sock_ctx() + - MEDIUM: quic: move conn->qc into conn->handle + - BUILD: ssl: fix build warning with previous changes to ssl_sock_ctx + - BUILD: ssl: add an unchecked version of __conn_get_ssl_sock_ctx() + - MINOR: ssl: refine the error testing for fc_err and fc_err_str + - BUG/MINOR: sock: do not double-close the accepted socket on the error path + - CI: cirrus: switch to FreeBSD-13.0 + - MINOR: log: add '~' to frontend when the transport layer provides SSL + - BUILD/DEBUG: lru: fix printf format in debug code + - BUILD: peers: adjust some printf format to silence cppcheck + - BUILD/DEBUG: hpack-tbl: fix format string in standalone debug code + - BUILD/DEBUG: hpack: use unsigned int in printf format in debug code + - BUILD: halog: fix some incorrect signs in printf formats for integers + - BUG/MINOR: h3: fix build with DEBUG_H3 + - BUG/MINOR: mux-h2: do not send GOAWAY if SETTINGS were not sent + - BUG/MINOR: cache: do not display expired entries in "show cache" + - BUG/MINOR: mux-h1: Don't release unallocated CS on error path + - MINOR: applet: Make .init callback more generic + - MINOR: conn-stream: Add flags to set the type of the endpoint + - MEDIUM: applet: Set the appctx owner during allocation + - MAJOR: conn-stream: Invert conn-stream endpoint and its context + - REORG: Initialize the conn-stream by hand in cs_init() + - MEDIUM: conn-stream: Add an endpoint structure in the conn-stream + - MINOR: conn-stream: Move some CS flags to the endpoint + - MEDIUM: conn-stream: Be able to pass endpoint to create a conn-stream + - MEDIUM: conn-stream: Pre-allocate endpoint to create CS from muxes and applets + - REORG: applet: Uninline appctx_new function + - MAJOR: conn-stream: Share endpoint struct between the CS and the mux/applet + - MEDIUM: conn-stream: Move remaning flags from CS to endpoint + - MINOR: mux-pt: Rely on the endpoint instead of the conn-stream when possible + - MINOR: conn-stream: Add ISBACK conn-stream flag + - MINOR: conn-stream: Add header file with util functions related to conn-streams + - MEDIUM: tree-wide: Use CS util functions instead of SI ones + - MINOR: stream-int/txn: Move buffer for L7 retries in the HTTP transaction + - CLEANUP: http-ana: Remove http_alloc_txn() function + - MINOR: stream-int/stream: Move conn_retries counter in the stream + - MINOR: stream: Simplify retries counter calculation + - MEDIUM: stream-int/conn-stream: Move src/dst addresses in the conn-stream + - MINOR: stream-int/conn-stream: Move half-close timeout in the conn-stream + - MEDIUM: stream-int/stream: Use connect expiration instead of SI expiration + - MINOR: stream-int/conn-stream: Report error to the CS instead of the SI + - MEDIUM: conn-stream: Use endpoint error instead of conn-stream error + - MINOR: channel: Use conn-streams as channel producer and consumer + - MINOR: stream-int: Remove SI_FL_KILL_CON to rely on conn-stream endpoint only + - MINOR: mux-h2/mux-fcgi: Fully rely on CS_EP_KILL_CONN + - MINOR: stream-int: Remove SI_FL_NOLINGER/NOHALF to rely on CS flags instead + - MINOR: stream-int: Remove SI_FL_DONT_WAKE to rely on CS flags instead + - MINOR: stream-int: Remove SI_FL_INDEP_STR to rely on CS flags instead + - MINOR: stream-int: Remove SI_FL_SRC_ADDR to rely on stream flags instead + - CLEANUP: stream-int: Remove unused SI_FL_CLEAN_ABRT flag + - MINOR: stream: Only save previous connection state for the server side + - MEDIUM: stream-int: Move SI err_type in the stream + - MEDIUM: stream-int/conn-stream: Move stream-interface state in the conn-stream + - MINOR: stream-int/stream: Move si_retnclose() in the stream scope + - MINOR: stream-int/backend: Move si_connect() in the backend scope + - MINOR: stream-int/conn-stream: Move si_conn_ready() in the conn-stream scope + - MINOR: conn-stream/connection: Move SHR/SHW modes in the connection scope + - MEDIUM: conn-stream: Be prepared to fail to attach a cs to a mux + - MEDIUM: stream-int/conn-stream: Handle I/O subscriptions in the conn-stream + - MINOR: conn-stream: Rename CS functions dedicated to connections + - MINOR: stream-int/conn-stream: Move si_shut* and si_chk* in conn-stream scope + - MEDIUM: stream-int/conn-stream: Move si_ops in the conn-stream scope + - MINOR: applet: Use the CS to register and release applets instead of SI + - MINOR: connection: unconst mux's get_fist_cs() callback function + - MINOR: stream-int/connection: Move conn_si_send_proxy() in the connection scope + - REORG: stream-int: Export si_cs_recv(), si_cs_send() and si_cs_process() + - REORG: stream-int: Move si_is_conn_error() in the header file + - REORG: conn-stream: Move cs_shut* and cs_chk* in cs_utils + - REORG: conn-stream: Move cs_app_ops in conn_stream.c + - MINOR: stream-int-conn-stream: Move si_update_* in conn-stream scope + - MINOR: stream-int/stream: Move si_update_both in stream scope + - MEDIUM: conn-stream/applet: Add a data callback for applets + - MINOR: stream-int/conn-stream: Move stream_int_read0() in the conn-stream scope + - MINOR: stream-int/conn-stream: Move stream_int_notify() in the conn-stream scope + - MINOR: stream-int/conn-stream: Move si_cs_io_cb() in the conn-stream scope + - MINOR: stream-int/conn-stream: Move si_sync_recv/send() in conn-stream scope + - MINOR: conn-stream: Move si_conn_cb in the conn-stream scope + - MINOR: stream-int/conn-stream Move si_is_conn_error() in the conn-stream scope + - MINOR: stream-int/conn-stream: Move si_alloc_ibuf() in the conn-stream scope + - CLEANUP: stream-int: Remove unused SI functions + - MEDIUM: stream-int/conn-stream: Move blocking flags from SI to CS + - MEDIUM: stream-int/conn-stream: Move I/O functions to conn-stream + - REORG: stream-int/conn-stream: Move remaining functions to conn-stream + - MINOR: stream: Use conn-stream to report server error + - MINOR: http-ana: Use CS to perform L7 retries + - MEDIUM: stream: Don't use the stream-int anymore in process_stream() + - MINOR: conn-stream: Remove the stream-interface from the conn-stream + - DEV: flags: No longer dump SI flags + - CLEANUP: tree-wide: Remove any ref to stream-interfaces + - CLEANUP: conn-stream: Don't export internal functions + - DOC: conn-stream: Add comments on functions of the new CS api + - MEDIUM: check: Use a new conn-stream for each health-check run + - CLEANUP: muxes: Remove MX_FL_CLEAN_ABRT flag + - MINOR: conn-stream: Use a dedicated function to conditionally remove a CS + - CLEANUP: conn-stream: rename cs_register_applet() to cs_applet_create() + - MINOR: muxes: Improve show_fd callbacks to dump endpoint flags + - MINOR: mux-h1: Rely on the endpoint instead of the conn-stream when possible + - BUG/MINOR: quic: Avoid starting the mux if no ALPN sent by the client + - BUILD: debug: mark the __start_mem_stats/__stop_mem_stats symbols as weak + - BUILD: initcall: mark the __start_i_* symbols as weak, not global + - BUG/MINOR: mux-h2: do not use timeout http-keep-alive on backend side + - BUG/MINOR: mux-h2: use timeout http-request as a fallback for http-keep-alive + - MINOR: muxes: Don't expect to have a mux without connection in destroy callback + - MINOR: muxes: Don't handle proto upgrade for muxes not supporting it + - MINOR: muxes: Don't expect to call release function with no mux defined + - MINOR: conn-stream: Use unsafe functions to get conn/appctx in cs_detach_endp + - BUG/MEDIUM: mux-h1: Don't request more room on partial trailers + - BUILD: http-client: Avoid dead code when compiled without SSL support + - BUG/MINOR: mux-quic: prevent a crash in session_free on mux.destroy + - BUG/MINOR: quic-sock: do not double free session on conn init failure + - BUG/MINOR: quic: fix return value for error in start + - MINOR: quic: emit CONNECTION_CLOSE on app init error + - BUILD: sched: workaround crazy and dangerous warning in Clang 14 + - BUILD: compiler: use a more portable set of asm(".weak") statements + - BUG/MEDIUM: stream: do not abort connection setup too early + - CLEANUP: extcheck: do not needlessly preset the server's address/port + - MINOR: extcheck: fill in the server's UNIX socket address when known + - BUG/MEDIUM: connection: Don't crush context pointer location if it is a CS + - BUG/MEDIUM: quic: properly clean frames on stream free + - BUG/MEDIUM: fcgi-app: Use http_msg flags to know if C-L header can be added + - BUG/MEDIUM: compression: Don't forget to update htx_sl and http_msg flags + - MINOR: tcp_sample: clarifying samples support per os, for further expansion. + - MINOR: tcp_sample: extend support for get_tcp_info to macOs. + - SCRIPTS: announce-release: update the doc's URL + - DOC: lua: update a few doc URLs + - SCRIPTS: announce-release: add shortened links to pending issues + 2022/04/09 : 2.6-dev5 - DOC: reflect H2 timeout changes - BUG/MEDIUM: mux-fcgi: Properly handle return value of headers/trailers parsing diff --git a/VERDATE b/VERDATE index dd9fd6be0b..6848fb72b6 100644 --- a/VERDATE +++ b/VERDATE @@ -1,2 +1,2 @@ $Format:%ci$ -2022/04/09 +2022/04/16 diff --git a/VERSION b/VERSION index c451fe866f..46d470e1c8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.6-dev5 +2.6-dev6 diff --git a/doc/configuration.txt b/doc/configuration.txt index 361f9ee79f..95d117711d 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -4,7 +4,7 @@ ---------------------- version 2.6 willy tarreau - 2022/04/09 + 2022/04/16 This document covers the configuration language as implemented in the version diff --git a/doc/lua.txt b/doc/lua.txt index 289bd1872a..3ef0d31687 100644 --- a/doc/lua.txt +++ b/doc/lua.txt @@ -1,6 +1,6 @@ Lua: Architecture and first steps ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - version 2.4 + version 2.6 author: Thierry FOURNIER contact: tfournier at arpalert dot org