сб, 16 апр. 2022 г. в 19:07, Willy Tarreau <[email protected]>:

> Hi,
>
> HAProxy 2.6-dev6 was released on 2022/04/16. It added 150 new commits
> after version 2.6-dev5.
>

can we schedule those coverity findings before 2.6 ?

src/haproxy.c: unintentional integer overflow suspected by coverity · Issue
#1585 · haproxy/haproxy (github.com)
<https://github.com/haproxy/haproxy/issues/1585>
src/cfgparse.c: use after free suspected by coverity · Issue #1563 ·
haproxy/haproxy (github.com)
<https://github.com/haproxy/haproxy/issues/1563>


>
> This release mostly focuses on integrating the second half of the merge
> of the stream interface and conn_stream that I spoke about last week, and
> it concludes this operation that was envisionned since the introduction of
> the conn_stream in 1.8. While the change is very methodic, it touches many
> places and there is a non-null risk that something was broken, hence the
> reason for exposing this rework as soon as possible. There is no expected
> change for users (aside a possible bug of course), but for developers it
> will change the way to access the lower layers from the upper ones (it will
> be simpler but for those like me who've used that since 1.4 or so, it will
> take some time to get used to it).
>
> QUIC saw a small batch of fixes and improvements (some are still pending).
> One visible part is that the SSL sample fetch functions now work on QUIC
> connections (e.g. ssl_fc or ssl_f_serial etc) and that the source address
> is now properly retrieved. The destination address is still inaccurate,
> the listener's address is retrieved (but if it's bound to an exact address
> instead of 0.0.0.0, the correct one will be reported). The reason is the
> limited API to retrieve the destination address of an incoming datagram.
> We've found a possibility to explore soon on Linux.
>
> A few TCP info sample fetch methods were enabled on MacOS.
>
> A few long-pending issues were addressed, and these fixes will be
> backported
> to affected versions, but there's nothing exceptional on this front.
>
> After some discussion with William and Emeric around the build trouble made
> by OpenSSL engines in OpenSSL 3.0 that dumps a torrent of warnings that
> hide
> important ones, and the fact that users of engines usually build some or
> all
> parts themselves, it was decided that engines are not enabled by default
> anymore, but that they may be enabled by passing "USE_ENGINE=1" to make.
> As such we now have the two following options:
>
>   - build with just USE_OPENSSL=1, engines are disabled, no warning should
>     be emitted. The SSL maintainers think it should be the default since
>     the future of engines in OpenSSL is uncertain due to the new
> "providers"
>     API that might possibly change certain settings in the future anyway.
>
>   - build with USE_OPENSSL=1 USE_ENGINE=1 to continue to enable engines.
>     In this case an extra option is passed to disable deprecation warnings
>     in OpenSSL so that the build should not emit any warning either, but
>     may also hide future deprecation warnings.
>
> My personal suspicion is that distros will build without engines since
> there is none that we're aware of that works out of the box without having
> at least to touch openssl a little bit, and that advanced users will
> continue to build their own optimized packages with this option enabled.
> Time will tell, as usual.
>
> Another improvement which is not related to the code, with the precious
> help of Tim and Cyril, we could finally set up an automatic generation of
> the HTML documentation. It's performed daily and published on github pages
> at http://docs.haproxy.org.
>
> William has also set up a build system that's triggered by the CI and that
> produces packages of the latest development version for various distros.
> The goal is to help users deploy development versions to participate to
> the testing and benefit early from new features, as we know that till now
> it used to require particular efforts and that not everyone has enough
> time to think about rebuilding packages often. I'll let William expand on
> this point regarding what's covered and how to use this.
>

that's interesting.
any links?


>
> Finally we've added links to remaining issues affecting the development
> versions below (verified bugs, unqualified ones and automated code
> reports).
> These are just shortcuts for filters in the issue tracker, but it's
> pleasant
> to see that there are quite few left thus we're on a good trend.
>
> LAST MINUTE:
> ------------
> The deployment on haproxy.org crashed during the typing of this message.
> I've pushed a fix that seems to have fixed it but I'll double-check with
> Christopher next week if I'm fixing the bug of just hiding it. Please do
> not deploy it in production before we send the signal that it's OK (we'll
> emit a new version then).
>
> Please find the usual URLs below :
>    Site index       : http://www.haproxy.org/
>    Documentation    : http://docs.haproxy.org/
>    Wiki             : https://github.com/haproxy/wiki/wiki
>    Discourse        : http://discourse.haproxy.org/
>    Slack channel    : https://slack.haproxy.org/
>    Issue tracker    : https://github.com/haproxy/haproxy/issues
>    Sources          : http://www.haproxy.org/download/2.6/src/
>    Git repository   : http://git.haproxy.org/git/haproxy.git/
>    Git Web browsing : http://git.haproxy.org/?p=haproxy.git
>    Changelog        : http://www.haproxy.org/download/2.6/src/CHANGELOG
>    Pending bugs     : http://www.haproxy.org/l/pending-bugs
>    Reviewed bugs    : http://www.haproxy.org/l/reviewed-bugs
>    Code reports     : http://www.haproxy.org/l/code-reports
>
> Willy
> ---
> Complete changelog :
> Amaury Denoyelle (6):
>       BUG/MINOR: h3: fix build with DEBUG_H3
>       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
>       BUG/MEDIUM: quic: properly clean frames on stream free
>
> Christopher Faulet (90):
>       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
>       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/MEDIUM: connection: Don't crush context pointer location if it
> is a CS
>       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
>
> David CARLIER (2):
>       MINOR: tcp_sample: clarifying samples support per os, for further
> expansion.
>       MINOR: tcp_sample: extend support for get_tcp_info to macOs.
>
> Frédéric Lécaille (1):
>       BUG/MINOR: quic: Avoid starting the mux if no ALPN sent by the client
>
> Ilya Shipitsin (2):
>       DOC: adjust QUIC instruction in INSTALL
>       CI: cirrus: switch to FreeBSD-13.0
>
> Tim Duesterhus (2):
>       CI: Update to actions/checkout@v3
>       CI: Update to actions/cache@v3
>
> William Lallemand (2):
>       BUILD: ssl: add USE_ENGINE and disable the openssl engine by default
>       CI: github actions: disable -Wno-deprecated
>
> Willy Tarreau (45):
>       CLEANUP: connection: reduce the with of the mux dump output
>       BUG/MINOR: stats: define the description' background color in dark
> color scheme
>       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
>       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
>       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: mux-h2: do not send GOAWAY if SETTINGS were not sent
>       BUG/MINOR: cache: do not display expired entries in "show cache"
>       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
>       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
>       SCRIPTS: announce-release: update the doc's URL
>       DOC: lua: update a few doc URLs
>       SCRIPTS: announce-release: add shortened links to pending issues
>
> ---
>
>

Reply via email to