From 768b62857e4822e9e5135bdf23f464ec9515e29d Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sat, 8 Apr 2023 17:38:39 +0200 Subject: [PATCH] [RELEASE] Released version 2.8-dev7 Released version 2.8-dev7 with the following main changes : - BUG/MINOR: stats: Don't replace sc_shutr() by SE_FL_EOS flag yet - BUG/MEDIUM: mux-h2: Be able to detect connection error during handshake - BUG/MINOR: quic: Missing padding in very short probe packets - MINOR: proxy/pool: prevent unnecessary calls to pool_gc() - CLEANUP: proxy: remove stop_time related dead code - DOC/MINOR: reformat configuration.txt's "quoting and escaping" table - MINOR: http_fetch: Add support for empty delim in url_param - MINOR: http_fetch: add case insensitive support for smp_fetch_url_param - MINOR: http_fetch: Add case-insensitive argument for url_param/urlp_val - REGTESTS : Add test support for case insentitive for url_param - BUG/MEDIUM: proxy/sktable: prevent watchdog trigger on soft-stop - BUG/MINOR: backend: make be_usable_srv() consistent when stopping - BUG/MINOR: ssl: Remove dead code in cli_parse_update_ocsp_response - BUG/MINOR: ssl: Fix potential leak in cli_parse_update_ocsp_response - BUG/MINOR: ssl: ssl-(min|max)-ver parameter not duplicated for bundles in crt-list - BUG/MINOR: quic: Wrong use of now_ms timestamps (cubic algo) - MINOR: quic: Add recovery related information to "show quic" - BUG/MINOR: quic: Wrong use of now_ms timestamps (newreno algo) - BUG/MINOR: quic: Missing max_idle_timeout initialization for the connection - MINOR: quic: Implement cubic state trace callback - MINOR: quic: Adjustments for generic control congestion traces - MINOR: quic: Traces adjustments at proto level. - MEDIUM: quic: Ack delay implementation - BUG/MINOR: quic: Wrong rtt variance computing - MINOR: cli: support filtering on FD types in "show fd" - MINOR: quic: Add a fake congestion control algorithm named "nocc" - CI: run smoke tests on config syntax to check memory related issues - CLEANUP: assorted typo fixes in the code and comments - CI: exclude doc/{design-thoughts,internals} from spell check - BUG/MINOR: quic: Remaining useless statements in cubic slow start callback - BUG/MINOR: quic: Cubic congestion control window may wrap - MINOR: quic: Add missing traces in cubic algorithm implementation - BUG/MAJOR: quic: Congestion algorithms states shared between the connection - BUG/MINOR: ssl: Undefined reference when building with OPENSSL_NO_DEPRECATED - BUG/MINOR: quic: Remove useless BUG_ON() in newreno and cubic algo implementation - MINOR: http-act: emit a warning when a header field name contains forbidden chars - DOC: config: strict-sni allows to start without certificate - MINOR: quic: Add trace to debug idle timer task issues - BUG/MINOR: quic: Unexpected connection closures upon idle timer task execution - BUG/MINOR: quic: Wrong idle timer expiration (during 20s) - BUILD: quic: 32bits compilation issue in cli_io_handler_dump_quic() - BUG/MINOR: quic: Possible wrong PTO computing - BUG/MINOR: tcpcheck: Be able to expect an empty response - BUG/MEDIUM: stconn: Add a missing return statement in sc_app_shutr() - BUG/MINOR: stream: Fix test on channels flags to set clientfin/serverfin touts - MINOR: applet: Uninline appctx_free() - MEDIUM: applet/trace: Register a new trace source with its events - CLEANUP: stconn: Remove remaining debug messages - BUG/MEDIUM: channel: Improve reports for shut in co_getblk() - BUG/MEDIUM: dns: Properly handle error when a response consumed - MINOR: stconn: Remove unecessary test on SE_FL_EOS before receiving data - MINOR: stconn/channel: Move CF_READ_DONTWAIT into the SC and rename it - MINOR: stconn/channel: Move CF_SEND_DONTWAIT into the SC and rename it - MINOR: stconn/channel: Move CF_NEVER_WAIT into the SC and rename it - MINOR: stconn/channel: Move CF_EXPECT_MORE into the SC and rename it - MINOR: mux-pt: Report end-of-input with the end-of-stream after a read - BUG/MINOR: mux-h1: Properly report EOI/ERROR on read0 in h1_rcv_pipe() - CLEANUP: mux-h1/mux-pt: Remove useless test on SE_FL_SHR/SE_FL_SHW flags - MINOR: mux-h1: Report an error to the SE descriptor on truncated message - MINOR: stconn: Always ack EOS at the end of sc_conn_recv() - MINOR: stconn/applet: Handle EOI in the applet .wake callback function - MINOR: applet: No longer set EOI on the SC - MINOR: stconn/applet: Handle EOS in the applet .wake callback function - MEDIUM: cache: Use the sedesc to report and detect end of processing - MEDIUM: cli: Use the sedesc to report and detect end of processing - MINOR: dns: Remove the test on the opposite SC state to send requests - MEDIUM: dns: Use the sedesc to report and detect end of processing - MEDIUM: spoe: Use the sedesc to report and detect end of processing - MEDIUM: hlua/applet: Use the sedesc to report and detect end of processing - MEDIUM: log: Use the sedesc to report and detect end of processing - MEDIUM: peers: Use the sedesc to report and detect end of processing - MINOR: sink: Remove the tests on the opposite SC state to process messages - MEDIUM: sink: Use the sedesc to report and detect end of processing - MEDIUM: stats: Use the sedesc to report and detect end of processing - MEDIUM: promex: Use the sedesc to report and detect end of processing - MEDIUM: http_client: Use the sedesc to report and detect end of processing - MINOR: stconn/channel: Move CF_EOI into the SC and rename it - MEDIUM: tree-wide: Move flags about shut from the channel to the SC - MINOR: tree-wide: Simplifiy some tests on SHUT flags by accessing SCs directly - MINOR: stconn/applet: Add BUG_ON_HOT() to be sure SE_FL_EOS is never set alone - MINOR: server: add SRV_F_DELETED flag - BUG/MINOR: server/del: fix srv->next pointer consistency - BUG/MINOR: stats: properly handle server stats dumping resumption - BUG/MINOR: sink: free forward_px on deinit() - BUG/MINOR: log: free log forward proxies on deinit() - MINOR: server: always call ssl->destroy_srv when available - MINOR: server: correctly free servers on deinit() - BUG/MINOR: hlua: hook yield does not behave as expected - MINOR: hlua: properly handle hlua_process_task HLUA_E_ETMOUT - BUG/MINOR: hlua: enforce proper running context for register_x functions - MINOR: hlua: Fix two functions that return nothing useful - MEDIUM: hlua: Dynamic list of frontend/backend in Lua - MINOR: hlua_fcn: alternative to old proxy and server attributes - MEDIUM: hlua_fcn: dynamic server iteration and indexing - MEDIUM: hlua_fcn/api: remove some old server and proxy attributes - CLEANUP: hlua: fix conflicting comment in hlua_ctx_destroy() - MINOR: hlua: add simple hlua reference handling API - MINOR: hlua: fix return type for hlua_checkfunction() and hlua_checktable() - BUG/MINOR: hlua: fix reference leak in core.register_task() - BUG/MINOR: hlua: fix reference leak in hlua_post_init_state() - BUG/MINOR: hlua: prevent function and table reference leaks on errors - CLEANUP: hlua: use hlua_ref() instead of luaL_ref() - CLEANUP: hlua: use hlua_pushref() instead of lua_rawgeti() - CLEANUP: hlua: use hlua_unref() instead of luaL_unref() - MINOR: hlua: simplify lua locking - BUG/MEDIUM: hlua: prevent deadlocks with main lua lock - MINOR: hlua_fcn: add server->get_rid() method - MINOR: hlua: support for optional arguments to core.register_task() - DOC: lua: silence "literal block ends without a blank line" Sphinx warnings - DOC: lua: silence "Unexpected indentation" Sphinx warnings - BUG/MINOR: event_hdl: fix rid storage type - BUG/MINOR: event_hdl: make event_hdl_subscribe thread-safe - MINOR: event_hdl: global sublist management clarification - BUG/MEDIUM: event_hdl: clean soft-stop handling - BUG/MEDIUM: event_hdl: fix async data refcount issue - MINOR: event_hdl: normal tasks support for advanced async mode - MINOR: event_hdl: add event_hdl_async_equeue_isempty() function - MINOR: event_hdl: add event_hdl_async_equeue_size() function - MINOR: event_hdl: pause/resume for subscriptions - MINOR: proxy: add findserver_unique_id() and findserver_unique_name() - MEDIUM: hlua/event_hdl: initial support for event handlers - MINOR: hlua/event_hdl: per-server event subscription - EXAMPLES: add basic event_hdl lua example script - MINOR: http-ana: Add a HTTP_MSGF flag to state the Expect header was checked - BUG/MINOR: http-ana: Don't switch message to DATA when waiting for payload - BUG/MINOR: quic: Possible crashes in qc_idle_timer_task() - MINOR: quic: derive first DCID from client ODCID - MINOR: quic: remove ODCID dedicated tree - MINOR: quic: remove address concatenation to ODCID - BUG/MINOR: mworker: unset more internal variables from program section - BUG/MINOR: errors: invalid use of memprintf in startup_logs_init() - MINOR: applet: Use unsafe version to get stream from SC in the trace function - BUG/MUNOR: http-ana: Use an unsigned integer for http_msg flags - MINOR: compression: Make compression offload a flag - MINOR: compression: Prepare compression code for request compression - MINOR: compression: Store algo and type for both request and response - MINOR: compression: Count separately request and response compression - MEDIUM: compression: Make it so we can compress requests as well. - BUG/MINOR: lua: remove incorrect usage of strncat() - CLEANUP: tcpcheck: remove the only occurrence of sprintf() in the code - CLEANUP: ocsp: do no use strpcy() to copy a path! - CLEANUP: tree-wide: remove strpcy() from constant strings - CLEANUP: opentracing: remove the last two occurrences of strncat() - BUILD: compiler: fix __equals_1() on older compilers - MINOR: compiler: define a __attribute__warning() macro - BUILD: bug.h: add a warning in the base API when unsafe functions are used - BUG/MEDIUM: listeners: Use the right parameters for strlcpy2(). --- CHANGELOG | 149 ++++++++++++++++++++++++++++++++ VERDATE | 2 +- VERSION | 2 +- doc/configuration.txt | 2 +- doc/internals/api/event_hdl.txt | 2 +- 5 files changed, 153 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 42abee85c..004a6c192 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,155 @@ ChangeLog : =========== +2023/04/08 : 2.8-dev7 + - BUG/MINOR: stats: Don't replace sc_shutr() by SE_FL_EOS flag yet + - BUG/MEDIUM: mux-h2: Be able to detect connection error during handshake + - BUG/MINOR: quic: Missing padding in very short probe packets + - MINOR: proxy/pool: prevent unnecessary calls to pool_gc() + - CLEANUP: proxy: remove stop_time related dead code + - DOC/MINOR: reformat configuration.txt's "quoting and escaping" table + - MINOR: http_fetch: Add support for empty delim in url_param + - MINOR: http_fetch: add case insensitive support for smp_fetch_url_param + - MINOR: http_fetch: Add case-insensitive argument for url_param/urlp_val + - REGTESTS : Add test support for case insentitive for url_param + - BUG/MEDIUM: proxy/sktable: prevent watchdog trigger on soft-stop + - BUG/MINOR: backend: make be_usable_srv() consistent when stopping + - BUG/MINOR: ssl: Remove dead code in cli_parse_update_ocsp_response + - BUG/MINOR: ssl: Fix potential leak in cli_parse_update_ocsp_response + - BUG/MINOR: ssl: ssl-(min|max)-ver parameter not duplicated for bundles in crt-list + - BUG/MINOR: quic: Wrong use of now_ms timestamps (cubic algo) + - MINOR: quic: Add recovery related information to "show quic" + - BUG/MINOR: quic: Wrong use of now_ms timestamps (newreno algo) + - BUG/MINOR: quic: Missing max_idle_timeout initialization for the connection + - MINOR: quic: Implement cubic state trace callback + - MINOR: quic: Adjustments for generic control congestion traces + - MINOR: quic: Traces adjustments at proto level. + - MEDIUM: quic: Ack delay implementation + - BUG/MINOR: quic: Wrong rtt variance computing + - MINOR: cli: support filtering on FD types in "show fd" + - MINOR: quic: Add a fake congestion control algorithm named "nocc" + - CI: run smoke tests on config syntax to check memory related issues + - CLEANUP: assorted typo fixes in the code and comments + - CI: exclude doc/{design-thoughts,internals} from spell check + - BUG/MINOR: quic: Remaining useless statements in cubic slow start callback + - BUG/MINOR: quic: Cubic congestion control window may wrap + - MINOR: quic: Add missing traces in cubic algorithm implementation + - BUG/MAJOR: quic: Congestion algorithms states shared between the connection + - BUG/MINOR: ssl: Undefined reference when building with OPENSSL_NO_DEPRECATED + - BUG/MINOR: quic: Remove useless BUG_ON() in newreno and cubic algo implementation + - MINOR: http-act: emit a warning when a header field name contains forbidden chars + - DOC: config: strict-sni allows to start without certificate + - MINOR: quic: Add trace to debug idle timer task issues + - BUG/MINOR: quic: Unexpected connection closures upon idle timer task execution + - BUG/MINOR: quic: Wrong idle timer expiration (during 20s) + - BUILD: quic: 32bits compilation issue in cli_io_handler_dump_quic() + - BUG/MINOR: quic: Possible wrong PTO computing + - BUG/MINOR: tcpcheck: Be able to expect an empty response + - BUG/MEDIUM: stconn: Add a missing return statement in sc_app_shutr() + - BUG/MINOR: stream: Fix test on channels flags to set clientfin/serverfin touts + - MINOR: applet: Uninline appctx_free() + - MEDIUM: applet/trace: Register a new trace source with its events + - CLEANUP: stconn: Remove remaining debug messages + - BUG/MEDIUM: channel: Improve reports for shut in co_getblk() + - BUG/MEDIUM: dns: Properly handle error when a response consumed + - MINOR: stconn: Remove unecessary test on SE_FL_EOS before receiving data + - MINOR: stconn/channel: Move CF_READ_DONTWAIT into the SC and rename it + - MINOR: stconn/channel: Move CF_SEND_DONTWAIT into the SC and rename it + - MINOR: stconn/channel: Move CF_NEVER_WAIT into the SC and rename it + - MINOR: stconn/channel: Move CF_EXPECT_MORE into the SC and rename it + - MINOR: mux-pt: Report end-of-input with the end-of-stream after a read + - BUG/MINOR: mux-h1: Properly report EOI/ERROR on read0 in h1_rcv_pipe() + - CLEANUP: mux-h1/mux-pt: Remove useless test on SE_FL_SHR/SE_FL_SHW flags + - MINOR: mux-h1: Report an error to the SE descriptor on truncated message + - MINOR: stconn: Always ack EOS at the end of sc_conn_recv() + - MINOR: stconn/applet: Handle EOI in the applet .wake callback function + - MINOR: applet: No longer set EOI on the SC + - MINOR: stconn/applet: Handle EOS in the applet .wake callback function + - MEDIUM: cache: Use the sedesc to report and detect end of processing + - MEDIUM: cli: Use the sedesc to report and detect end of processing + - MINOR: dns: Remove the test on the opposite SC state to send requests + - MEDIUM: dns: Use the sedesc to report and detect end of processing + - MEDIUM: spoe: Use the sedesc to report and detect end of processing + - MEDIUM: hlua/applet: Use the sedesc to report and detect end of processing + - MEDIUM: log: Use the sedesc to report and detect end of processing + - MEDIUM: peers: Use the sedesc to report and detect end of processing + - MINOR: sink: Remove the tests on the opposite SC state to process messages + - MEDIUM: sink: Use the sedesc to report and detect end of processing + - MEDIUM: stats: Use the sedesc to report and detect end of processing + - MEDIUM: promex: Use the sedesc to report and detect end of processing + - MEDIUM: http_client: Use the sedesc to report and detect end of processing + - MINOR: stconn/channel: Move CF_EOI into the SC and rename it + - MEDIUM: tree-wide: Move flags about shut from the channel to the SC + - MINOR: tree-wide: Simplifiy some tests on SHUT flags by accessing SCs directly + - MINOR: stconn/applet: Add BUG_ON_HOT() to be sure SE_FL_EOS is never set alone + - MINOR: server: add SRV_F_DELETED flag + - BUG/MINOR: server/del: fix srv->next pointer consistency + - BUG/MINOR: stats: properly handle server stats dumping resumption + - BUG/MINOR: sink: free forward_px on deinit() + - BUG/MINOR: log: free log forward proxies on deinit() + - MINOR: server: always call ssl->destroy_srv when available + - MINOR: server: correctly free servers on deinit() + - BUG/MINOR: hlua: hook yield does not behave as expected + - MINOR: hlua: properly handle hlua_process_task HLUA_E_ETMOUT + - BUG/MINOR: hlua: enforce proper running context for register_x functions + - MINOR: hlua: Fix two functions that return nothing useful + - MEDIUM: hlua: Dynamic list of frontend/backend in Lua + - MINOR: hlua_fcn: alternative to old proxy and server attributes + - MEDIUM: hlua_fcn: dynamic server iteration and indexing + - MEDIUM: hlua_fcn/api: remove some old server and proxy attributes + - CLEANUP: hlua: fix conflicting comment in hlua_ctx_destroy() + - MINOR: hlua: add simple hlua reference handling API + - MINOR: hlua: fix return type for hlua_checkfunction() and hlua_checktable() + - BUG/MINOR: hlua: fix reference leak in core.register_task() + - BUG/MINOR: hlua: fix reference leak in hlua_post_init_state() + - BUG/MINOR: hlua: prevent function and table reference leaks on errors + - CLEANUP: hlua: use hlua_ref() instead of luaL_ref() + - CLEANUP: hlua: use hlua_pushref() instead of lua_rawgeti() + - CLEANUP: hlua: use hlua_unref() instead of luaL_unref() + - MINOR: hlua: simplify lua locking + - BUG/MEDIUM: hlua: prevent deadlocks with main lua lock + - MINOR: hlua_fcn: add server->get_rid() method + - MINOR: hlua: support for optional arguments to core.register_task() + - DOC: lua: silence "literal block ends without a blank line" Sphinx warnings + - DOC: lua: silence "Unexpected indentation" Sphinx warnings + - BUG/MINOR: event_hdl: fix rid storage type + - BUG/MINOR: event_hdl: make event_hdl_subscribe thread-safe + - MINOR: event_hdl: global sublist management clarification + - BUG/MEDIUM: event_hdl: clean soft-stop handling + - BUG/MEDIUM: event_hdl: fix async data refcount issue + - MINOR: event_hdl: normal tasks support for advanced async mode + - MINOR: event_hdl: add event_hdl_async_equeue_isempty() function + - MINOR: event_hdl: add event_hdl_async_equeue_size() function + - MINOR: event_hdl: pause/resume for subscriptions + - MINOR: proxy: add findserver_unique_id() and findserver_unique_name() + - MEDIUM: hlua/event_hdl: initial support for event handlers + - MINOR: hlua/event_hdl: per-server event subscription + - EXAMPLES: add basic event_hdl lua example script + - MINOR: http-ana: Add a HTTP_MSGF flag to state the Expect header was checked + - BUG/MINOR: http-ana: Don't switch message to DATA when waiting for payload + - BUG/MINOR: quic: Possible crashes in qc_idle_timer_task() + - MINOR: quic: derive first DCID from client ODCID + - MINOR: quic: remove ODCID dedicated tree + - MINOR: quic: remove address concatenation to ODCID + - BUG/MINOR: mworker: unset more internal variables from program section + - BUG/MINOR: errors: invalid use of memprintf in startup_logs_init() + - MINOR: applet: Use unsafe version to get stream from SC in the trace function + - BUG/MUNOR: http-ana: Use an unsigned integer for http_msg flags + - MINOR: compression: Make compression offload a flag + - MINOR: compression: Prepare compression code for request compression + - MINOR: compression: Store algo and type for both request and response + - MINOR: compression: Count separately request and response compression + - MEDIUM: compression: Make it so we can compress requests as well. + - BUG/MINOR: lua: remove incorrect usage of strncat() + - CLEANUP: tcpcheck: remove the only occurrence of sprintf() in the code + - CLEANUP: ocsp: do no use strpcy() to copy a path! + - CLEANUP: tree-wide: remove strpcy() from constant strings + - CLEANUP: opentracing: remove the last two occurrences of strncat() + - BUILD: compiler: fix __equals_1() on older compilers + - MINOR: compiler: define a __attribute__warning() macro + - BUILD: bug.h: add a warning in the base API when unsafe functions are used + - BUG/MEDIUM: listeners: Use the right parameters for strlcpy2(). + 2023/03/28 : 2.8-dev6 - BUG/MEDIUM: mux-pt: Set EOS on error on sending path if read0 was received - MINOR: ssl: Change the ocsp update log-format diff --git a/VERDATE b/VERDATE index 6cc6d303f..52d329fef 100644 --- a/VERDATE +++ b/VERDATE @@ -1,2 +1,2 @@ $Format:%ci$ -2023/03/28 +2023/04/08 diff --git a/VERSION b/VERSION index d58872dc4..bc3b6d4ad 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.8-dev6 +2.8-dev7 diff --git a/doc/configuration.txt b/doc/configuration.txt index 65c08939f..1996d73de 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -3,7 +3,7 @@ Configuration Manual ---------------------- version 2.8 - 2023/03/28 + 2023/04/08 This document covers the configuration language as implemented in the version diff --git a/doc/internals/api/event_hdl.txt b/doc/internals/api/event_hdl.txt index 102aea4f6..72eeff801 100644 --- a/doc/internals/api/event_hdl.txt +++ b/doc/internals/api/event_hdl.txt @@ -1,5 +1,5 @@ ----------------------------------------- - event_hdl Guide - version 1.0 + event_hdl Guide - version 2.8 ( Last update: 2022-11-14 ) ------------------------------------------