]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[RELEASE] Released version 3.1-dev10 v3.1-dev10
authorWilly Tarreau <w@1wt.eu>
Wed, 16 Oct 2024 20:57:52 +0000 (22:57 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 16 Oct 2024 20:57:52 +0000 (22:57 +0200)
Released version 3.1-dev10 with the following main changes :
    - BUG/MAJOR: mux-quic: do not crash on empty STREAM frame emission
    - BUG/MINOR: stats: Fix the name for the total number of streams created
    - MINOR: quic: strengthen qc_release_frm()
    - MEDIUM: quic: decount acknowledged data for MUX txbuf window
    - MINOR: quic: implement dedicated type for out-of-order stream ACK
    - MEDIUM: quic: merge contiguous/overlapping buffered ack stream range
    - MEDIUM: quic: decount out-of-order ACK data range for MUX txbuf window
    - MINOR: log: add do_log() logging helper
    - MINOR: log: add do_log_parse_act() helper func
    - MINOR: action: add do-log action
    - REGTESTS: add some tests for 'do-log' action
    - BUG/MEDIUM: hlua: make hlua_ctx_renew() safe
    - BUG/MEDIUM: hlua: properly handle sample func errors in hlua_run_sample_{fetch,conv}()
    - BUG/MINOR: quic: fix discarding of already stored out-of-order ACK
    - BUG/MEDIUM: quic: properly decount out-of-order ACK on stream release
    - MINOR: ssl: disable server side default CRL check with WolfSSL
    - MEDIUM: sink: implement sink_find_early()
    - MINOR: trace: postresolve sink names
    - MINOR: sample: postresolve sink names in debug() converter
    - BUG/MEDIUM: mux-quic: ensure timeout server is active for short requests
    - MINOR: cfgparse: simulate long configuration parsing with force-cfg-parser-pause
    - BUILD: cache: silence an uninitialized warning at -Og with gcc-12.2
    - BUG/MINOR: mux-h2/traces: present the correct buffer for trailers errors traces
    - MINOR: mux-h2/traces: print the size of the DATA frames
    - CLEANUP: muxes: remove useless inclusion of ebmbtree.h
    - REORG: buffers: move some of the heavy functions from buf.h to buf.c
    - MINOR: buffer: add a buffer list type with functions
    - MINOR: mux-h2: split the amount of rx data from the amount to ack
    - MINOR: mux-h2: create and initialize an rx offset per stream
    - MEDIUM: mux-h2: start to update stream when sending WU
    - MEDIUM: mux-h2: start to introduce the window size in the offset calculation
    - MINOR: mux-h2: count within a connection, how many streams are receiving data
    - MINOR: mux-h2: allocate the array of shared rx bufs in the h2c
    - MINOR: mux-h2: add rxbuf head/tail/count management for h2s
    - MINOR: mux-h2: move H2_CF_WAIT_IN_LIST flag away from the demux flags
    - MINOR: mux-h2: simplify the exit code in h2_rcv_buf()
    - MINOR: mux-h2: simplify the wake up code in h2_rcv_buf()
    - MINOR: mux-h2: clear up H2_CF_DEM_DFULL and H2_CF_DEM_SHORT_READ ambiguity
    - MAJOR: mux-h2: make streams use the connection's buffers
    - MAJOR: mux-h2: permit a stream to allocate as many buffers as desired
    - MAJOR: mux-h2: make the rxbuf allocation algorithm a bit smarter
    - MINOR: mux-h2: add tune.h2.be.rxbuf and tune.h2.fe.rxbuf global settings
    - MEDIUM: mux-h2: change the default initial window to 16kB
    - DOC: design-thoughts: add diagrams illustrating an rx win groth
    - MEDIUM: mux-h2: rework h2_restart_reading() to differentiate recv and demux
    - OPTIM: mux-h2: make h2_send() report more accurate wake up conditions
    - OPTIM: mux-h2: try to continue reading after demuxing when useful
    - OPTIM: mux-h2: use tasklet_wakeup_after() in h2s_notify_recv()
    - MINOR: mux-h2/traces: add missing flags and proxy ID in traces
    - MINOR: mux-h2/traces: add buffer-related info to h2s and h2c
    - CI: cirrus-ci: bump FreeBSD image to 14-1
    - REGTESTS: fix a reload race in abns_socket.vtc
    - MINOR: activity/memprofile: always return "other" bin on NULL return address
    - MINOR: quic: notify connection layer on handshake completion
    - BUG/MINOR: stream: unblock stream on wait-for-handshake completion
    - BUG/MEDIUM: quic: support wait-for-handshake
    - BUG/MEDIUM: server: server stuck in maintenance after FQDN change
    - BUG/MEDIUM: queue: make sure never to queue when there's no more served conns
    - DEBUG: mux-h2/flags: add H2_CF_DEM_RXBUF & H2_SF_EXPECT_RXDATA for the decoder
    - REGTESTS: cli: add delay 0.1 before connect to cli
    - MINOR: startup: add O_CLOEXEC flag to open /dev/null
    - MEDIUM: startup: move daemonization fork in init
    - MINOR: startup: refactor "daemonization" fork
    - MEDIUM: startup: move PID handling in init()
    - MAJOR: mworker: move master-worker fork in init()
    - BUG/MINOR: mworker: fix memory leak due to master-worker fork
    - REORG: mworker: set nbthread=1 for master after fork
    - MINOR: init: check MODE_MWORKER before creating master CLI
    - REORG: mworker: move mworker_create_master_cli in master 'case'
    - MEDIUM: startup: call chroot() if needed in one place
    - MEDIUM: startup: do set_identity() if needed in one place
    - MINOR: startup: only worker gets capabilities from bin
    - CLEANUP: haproxy: rm no longer used mworker_reexec_waitmode
    - MINOR: startup: rename exit_on_waitmode_failure to exit_on_failure
    - MINOR: defaults: update MASTER_MAXCONN description
    - MEDIUM: startup: remove MODE_MWORKER_WAIT
    - MINOR: global: add MODE_DISCOVERY flag
    - MEDIUM: cfgparse: add KWF_DISCOVERY keyword flag
    - MEDIUM: cfgparse: call some parsers only in MODE_DISCOVERY
    - MEDIUM: cfgparse-global: parse only KWF_DISCOVERY keywords in MODE_DISCOVERY
    - MEDIUM: cfgparse: parse only "global" section in MODE_DISCOVERY
    - MEDIUM: startup: introduce load_cfg and read_cfg
    - MINOR: cfgparse: fix *thread keywords sensitive to global section position
    - MINOR: mworker/cli: rename mworker_cli_proxy_new_listener
    - MINOR: mworker/cli: rename and clean mworker_cli_sockpair_new
    - MINOR: mworker/cli: create master CLI sockpair before fork
    - MINOR: mworker/cli: create MASTER proxy before mcli listeners
    - MINOR: mworker: add and set state PROC_O_INIT for new worker
    - MEDIUM: mworker/cli: close child and parent fds, setup listeners
    - MINOR: mworker: mworker_catch_sigchld: use fd_delete instead of close
    - MINOR: startup: rename and adapt reexec_on_failure
    - MINOR: mworker: add support for case when new worker dies
    - MINOR: mworker: simplify the code that sets PROC_O_LEAVING
    - MINOR: mworker/cli: add _send_status to support state transition
    - MEDIUM: startup: split sending oldpids_sig logic for standalone and mworker modes
    - MINOR: startup: split init() into separate initialization routines
    - MINOR: startup: split main: add step_init_3
    - MINOR: startup: simplify check for calling sock_get_old_sockets
    - MINOR: startup: encapsulate sock_get_old_sockets in a function
    - MINOR: startup: add bind_listeners
    - MINOR: startup: split main: add step_init_4
    - MINOR: startup: encapsulate master's code in run_master
    - MINOR: startup: add read_cfg_in_discovery_mode
    - MINOR: mworker: adapt exit_on_failure for master recovery mode
    - MEDIUM: mworker: add support of master recovery mode
    - MINOR: startup: add set_verbosity
    - MEDIUM: mworker: block reloads
    - MINOR: mworker: slow load status delivery if worker is starting
    - MINOR: mworker: readapt program support in mworker_catch_sigchld
    - MINOR: mworker: deserialize process list before read_cfg_in_discovery_mode
    - MINOR: mworker: parse program only in MODE_DISCOVERY
    - MINOR: cfgparse: add support for program section
    - MINOR: startup: reintroduce program support
    - MINOR: mworker-prog: stop old programs in mworker_ext_launch_all
    - MINOR: mworker: reintroduce systemd support
    - MINOR: mworker: report explicitly when worker exits due to max reloads
    - MINOR: cfgparse-global: parse *env keywords in MODE_DISCOVERY
    - MINOR: startup: reintroduce *env keywords support
    - MINOR: startup: close devnullfd, when daemon mode is applied

CHANGELOG
VERDATE
VERSION
doc/configuration.txt
doc/design-thoughts/h2-rx-win.fig

index e3cff9a12f1d6f0520725d03a2cae7b67ab969cc..0acd27ba35ee83c375544f808ac44c26e68e48b6 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,127 @@
 ChangeLog :
 ===========
 
+2024/10/16 : 3.1-dev10
+    - BUG/MAJOR: mux-quic: do not crash on empty STREAM frame emission
+    - BUG/MINOR: stats: Fix the name for the total number of streams created
+    - MINOR: quic: strengthen qc_release_frm()
+    - MEDIUM: quic: decount acknowledged data for MUX txbuf window
+    - MINOR: quic: implement dedicated type for out-of-order stream ACK
+    - MEDIUM: quic: merge contiguous/overlapping buffered ack stream range
+    - MEDIUM: quic: decount out-of-order ACK data range for MUX txbuf window
+    - MINOR: log: add do_log() logging helper
+    - MINOR: log: add do_log_parse_act() helper func
+    - MINOR: action: add do-log action
+    - REGTESTS: add some tests for 'do-log' action
+    - BUG/MEDIUM: hlua: make hlua_ctx_renew() safe
+    - BUG/MEDIUM: hlua: properly handle sample func errors in hlua_run_sample_{fetch,conv}()
+    - BUG/MINOR: quic: fix discarding of already stored out-of-order ACK
+    - BUG/MEDIUM: quic: properly decount out-of-order ACK on stream release
+    - MINOR: ssl: disable server side default CRL check with WolfSSL
+    - MEDIUM: sink: implement sink_find_early()
+    - MINOR: trace: postresolve sink names
+    - MINOR: sample: postresolve sink names in debug() converter
+    - BUG/MEDIUM: mux-quic: ensure timeout server is active for short requests
+    - MINOR: cfgparse: simulate long configuration parsing with force-cfg-parser-pause
+    - BUILD: cache: silence an uninitialized warning at -Og with gcc-12.2
+    - BUG/MINOR: mux-h2/traces: present the correct buffer for trailers errors traces
+    - MINOR: mux-h2/traces: print the size of the DATA frames
+    - CLEANUP: muxes: remove useless inclusion of ebmbtree.h
+    - REORG: buffers: move some of the heavy functions from buf.h to buf.c
+    - MINOR: buffer: add a buffer list type with functions
+    - MINOR: mux-h2: split the amount of rx data from the amount to ack
+    - MINOR: mux-h2: create and initialize an rx offset per stream
+    - MEDIUM: mux-h2: start to update stream when sending WU
+    - MEDIUM: mux-h2: start to introduce the window size in the offset calculation
+    - MINOR: mux-h2: count within a connection, how many streams are receiving data
+    - MINOR: mux-h2: allocate the array of shared rx bufs in the h2c
+    - MINOR: mux-h2: add rxbuf head/tail/count management for h2s
+    - MINOR: mux-h2: move H2_CF_WAIT_IN_LIST flag away from the demux flags
+    - MINOR: mux-h2: simplify the exit code in h2_rcv_buf()
+    - MINOR: mux-h2: simplify the wake up code in h2_rcv_buf()
+    - MINOR: mux-h2: clear up H2_CF_DEM_DFULL and H2_CF_DEM_SHORT_READ ambiguity
+    - MAJOR: mux-h2: make streams use the connection's buffers
+    - MAJOR: mux-h2: permit a stream to allocate as many buffers as desired
+    - MAJOR: mux-h2: make the rxbuf allocation algorithm a bit smarter
+    - MINOR: mux-h2: add tune.h2.be.rxbuf and tune.h2.fe.rxbuf global settings
+    - MEDIUM: mux-h2: change the default initial window to 16kB
+    - DOC: design-thoughts: add diagrams illustrating an rx win groth
+    - MEDIUM: mux-h2: rework h2_restart_reading() to differentiate recv and demux
+    - OPTIM: mux-h2: make h2_send() report more accurate wake up conditions
+    - OPTIM: mux-h2: try to continue reading after demuxing when useful
+    - OPTIM: mux-h2: use tasklet_wakeup_after() in h2s_notify_recv()
+    - MINOR: mux-h2/traces: add missing flags and proxy ID in traces
+    - MINOR: mux-h2/traces: add buffer-related info to h2s and h2c
+    - CI: cirrus-ci: bump FreeBSD image to 14-1
+    - REGTESTS: fix a reload race in abns_socket.vtc
+    - MINOR: activity/memprofile: always return "other" bin on NULL return address
+    - MINOR: quic: notify connection layer on handshake completion
+    - BUG/MINOR: stream: unblock stream on wait-for-handshake completion
+    - BUG/MEDIUM: quic: support wait-for-handshake
+    - BUG/MEDIUM: server: server stuck in maintenance after FQDN change
+    - BUG/MEDIUM: queue: make sure never to queue when there's no more served conns
+    - DEBUG: mux-h2/flags: add H2_CF_DEM_RXBUF & H2_SF_EXPECT_RXDATA for the decoder
+    - REGTESTS: cli: add delay 0.1 before connect to cli
+    - MINOR: startup: add O_CLOEXEC flag to open /dev/null
+    - MEDIUM: startup: move daemonization fork in init
+    - MINOR: startup: refactor "daemonization" fork
+    - MEDIUM: startup: move PID handling in init()
+    - MAJOR: mworker: move master-worker fork in init()
+    - BUG/MINOR: mworker: fix memory leak due to master-worker fork
+    - REORG: mworker: set nbthread=1 for master after fork
+    - MINOR: init: check MODE_MWORKER before creating master CLI
+    - REORG: mworker: move mworker_create_master_cli in master 'case'
+    - MEDIUM: startup: call chroot() if needed in one place
+    - MEDIUM: startup: do set_identity() if needed in one place
+    - MINOR: startup: only worker gets capabilities from bin
+    - CLEANUP: haproxy: rm no longer used mworker_reexec_waitmode
+    - MINOR: startup: rename exit_on_waitmode_failure to exit_on_failure
+    - MINOR: defaults: update MASTER_MAXCONN description
+    - MEDIUM: startup: remove MODE_MWORKER_WAIT
+    - MINOR: global: add MODE_DISCOVERY flag
+    - MEDIUM: cfgparse: add KWF_DISCOVERY keyword flag
+    - MEDIUM: cfgparse: call some parsers only in MODE_DISCOVERY
+    - MEDIUM: cfgparse-global: parse only KWF_DISCOVERY keywords in MODE_DISCOVERY
+    - MEDIUM: cfgparse: parse only "global" section in MODE_DISCOVERY
+    - MEDIUM: startup: introduce load_cfg and read_cfg
+    - MINOR: cfgparse: fix *thread keywords sensitive to global section position
+    - MINOR: mworker/cli: rename mworker_cli_proxy_new_listener
+    - MINOR: mworker/cli: rename and clean mworker_cli_sockpair_new
+    - MINOR: mworker/cli: create master CLI sockpair before fork
+    - MINOR: mworker/cli: create MASTER proxy before mcli listeners
+    - MINOR: mworker: add and set state PROC_O_INIT for new worker
+    - MEDIUM: mworker/cli: close child and parent fds, setup listeners
+    - MINOR: mworker: mworker_catch_sigchld: use fd_delete instead of close
+    - MINOR: startup: rename and adapt reexec_on_failure
+    - MINOR: mworker: add support for case when new worker dies
+    - MINOR: mworker: simplify the code that sets PROC_O_LEAVING
+    - MINOR: mworker/cli: add _send_status to support state transition
+    - MEDIUM: startup: split sending oldpids_sig logic for standalone and mworker modes
+    - MINOR: startup: split init() into separate initialization routines
+    - MINOR: startup: split main: add step_init_3
+    - MINOR: startup: simplify check for calling sock_get_old_sockets
+    - MINOR: startup: encapsulate sock_get_old_sockets in a function
+    - MINOR: startup: add bind_listeners
+    - MINOR: startup: split main: add step_init_4
+    - MINOR: startup: encapsulate master's code in run_master
+    - MINOR: startup: add read_cfg_in_discovery_mode
+    - MINOR: mworker: adapt exit_on_failure for master recovery mode
+    - MEDIUM: mworker: add support of master recovery mode
+    - MINOR: startup: add set_verbosity
+    - MEDIUM: mworker: block reloads
+    - MINOR: mworker: slow load status delivery if worker is starting
+    - MINOR: mworker: readapt program support in mworker_catch_sigchld
+    - MINOR: mworker: deserialize process list before read_cfg_in_discovery_mode
+    - MINOR: mworker: parse program only in MODE_DISCOVERY
+    - MINOR: cfgparse: add support for program section
+    - MINOR: startup: reintroduce program support
+    - MINOR: mworker-prog: stop old programs in mworker_ext_launch_all
+    - MINOR: mworker: reintroduce systemd support
+    - MINOR: mworker: report explicitly when worker exits due to max reloads
+    - MINOR: cfgparse-global: parse *env keywords in MODE_DISCOVERY
+    - MINOR: startup: reintroduce *env keywords support
+    - MINOR: startup: close devnullfd, when daemon mode is applied
+
 2024/10/03 : 3.1-dev9
     - MINOR: tools: add minimal file name management
     - CLEANUP: stick-table: make the file location point to a global file name
diff --git a/VERDATE b/VERDATE
index 4e7ae5a49e9bb0813af9bc41c1f41e3d5a350d62..e0a50e9debeeae5c272184cdf73bd9f1379ba810 100644 (file)
--- a/VERDATE
+++ b/VERDATE
@@ -1,2 +1,2 @@
 $Format:%ci$
-2024/10/03
+2024/10/16
diff --git a/VERSION b/VERSION
index 379ad887c7389208526a4e9a2c5f0ec00e146a11..9a1379333acfa690c6db0cb060d4698439f10a3a 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.1-dev9
+3.1-dev10
index 34e07f3cf33344e0b3a9ef5d5a4b71afbc130725..a6bb9062f81d7b1ed570f9f7501944c5fddc0ea4 100644 (file)
@@ -3,7 +3,7 @@
                           Configuration Manual
                          ----------------------
                               version 3.1
-                              2024/10/03
+                              2024/10/16
 
 
 This document covers the configuration language as implemented in the version
index 45e7658a26aa85ee0af245d41dcf8b9112011764..7463640f0bd6388af21a3a8353bcac77627c783b 100644 (file)
@@ -1,4 +1,4 @@
-#FIG 3.2  Produced by xfig version 3.2.8b
+#FIG 3.2  Produced by xfig version 3.1
 Landscape
 Center
 Metric