Hi,

HAProxy 2.2-dev6 was released on 2020/04/17. It added 88 new commits
after version 2.2-dev5.

It's a bit late as I would have preferred to emit that one earlier, but
anyway now it's available.

The changes are mostly split into 4 categories:
  - bug fixes: 22 bugs were fixed since 2.2-dev5. It's worth noting that
    this version is the first tagged 2.2-dev which includs the fix for
    CVE-2020-11100 that's going to be published next week

  - SSL runtime cert updates: William has completed his rework of the
    certificate management so apparently (if my understanding is right)
    now any certificate can now be updated on the fly from the CLI, added
    to or deleted from crt-list, etc. This was a long awaited feature but
    now it's a reality. See William's e-mail below for all the details:

        https://www.mail-archive.com/[email protected]/msg36927.html

  - idle connections improvements: it was reported that under sustained
    load, some connections were still occasionally dropped and recreated.
    This was caused by the fact that we periodically kill half of the idle
    ones. Now instead haproxy constantly monitors how many are needed on a
    server, and it kills half of those which are not expected to be used
    based on the previous period measurements. This way fluctuating loads
    will keep even more connections reusable.

  - troubleshooting: given that some users get trapped into running the
    wrong haproxy executable when they install several of them on their
    system, when haproxy emits an alert during the startup, it will now
    also report its exact version and the path the executable was loaded
    from (this last one is only on recent linux systems). This can help
    detect a wrong path in an init script for example. In addition, there
    is a new "zero-warning" mode which can be enabled using -dW or using
    "zero-warning" in the global section, which turns any warning into a
    fatal error to prevent it from starting. This can help for those who
    are careful about keeping clean configs, or who want to enforce clean
    configs on shared systems. Last, "haproxy -c" will now indicate at the
    end if some warnings were found. This may be useful in check scripts.

The rest is very minor, usual code/doc/CI cleanups mostly. A new sample-
fetch function "so_name" reports the "name" field of the bind line that
accepted the incoming connection. A new "linux-musl" target was added to
the makefile because I believed I was the only one using it but I'm not,
so this can slightly help Docker users.

And I think that's about all for this one.

Regarding the pending stuff I'm aware off, Christopher told me he'll soon
have a first batch of health-check changes, Emeric will have some updates
to support syslog over TCP, there are a few patches still being discussed
on the list and bugs worth having a look at in the github tracker. But
overall I think we'll be good for end of May or early June.

If you're using a lot of SSL certificates or using them in a non-trivial
way, please give this one a try and report anything strange you might
notice, or anything you would find confusing in the way to manage your
certs. William did a lot of tests but we also know it's a very tricky
area where users are sometimes creative :-)

Please find the usual URLs below :
   Site index       : http://www.haproxy.org/
   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.2/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.2/src/CHANGELOG
   Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/

Willy
---
Complete changelog :
Adam Mills (1):
      DOC: hashing: update link to hashing functions

Baptiste Assmann (2):
      CLEANUP: remove obsolete comments
      BUG/MEDIUM: dns: improper parsing of aditional records

Daniel Corbett (1):
      BUG/MINOR: stats: Fix color of draining servers on stats page

Dominik Froehlich (1):
      CLEANUP: http: Fixed small typo in parse_http_return

Emmanuel Hocdet (4):
      BUG/MINOR: ssl: memory leak when find_chain is NULL
      CLEANUP: ssl: rename ssl_get_issuer_chain to ssl_get0_issuer_chain
      MINOR: ssl: rework add cert chain to CTX to be libssl independent
      MINOR: ssl: skip self issued CA in cert chain for ssl_ctx

Frédéric Lécaille (3):
      BUG/MINOR: peers: Use after free of "peers" section.
      BUG/MINOR: protocol_buffer: Wrong maximum shifting.
      BUG/MINOR: peers: Incomplete peers sections should be validated.

Ilya Shipitsin (11):
      CI: github actions: add weekly h2spec test
      CLEANUP: assorted typo fixes in the code and comments
      CLEANUP: src/fd.c: mask setsockopt with DISGUISE
      CLEANUP: assorted typo fixes in the code and comments
      CI: use better SSL library definition
      CI: travis-ci: enable DEBUG_STRICT=1 for CI builds
      CI: travis-ci: upgrade openssl to 1.1.1f
      CI: cirrus-ci: rename openssl package after it is renamed in FreeBSD
      CI: adopt openssl download script to download all versions
      CLEANUP: assorted typo fixes in the code and comments
      CLEANUP: assorted typo fixes in the code and comments

Jerome Magnin (2):
      MINOR: listener: add so_name sample fetch
      MEDIUM: stream: support use-server rules with dynamic names

Miroslav Zagorac (1):
      DOC: internals: Fix spelling errors in filters.txt

Olivier Carrère (1):
      DOC: Make how "option redispatch" works more explicit

Olivier Houchard (6):
      BUG/MEDIUM: mux_h1: Process a new request if we already received it.
      MINOR: build: Fix build in mux_h1
      MINOR: servers: Add a counter for the number of currently used 
connections.
      MEDIUM: connections: Revamp the way idle connections are killed
      MINOR: connections: Don't mark conn flags 0x00000001 and 0x00000002 as 
unused.
      BUG/MEDIUM: dns: Consider the fact that dns answers are case-insensitive

William Lallemand (46):
      BUG/MINOR: peers: init bind_proc to 1 if it wasn't initialized
      BUG/MINOR: peers: avoid an infinite loop with peers_fe is NULL
      MINOR: cli: add a general purpose pointer in the CLI struct
      MINOR: ssl: add a list of bind_conf in struct crtlist
      REORG: ssl: move SETCERT enum to ssl_sock.h
      BUG/MINOR: ssl: ckch_inst wrongly inserted in crtlist_entry
      REORG: ssl: move some functions above crtlist_load_cert_dir()
      MINOR: ssl: use crtlist_free() upon error in directory loading
      MINOR: ssl: add a list of crtlist_entry in ckch_store
      MINOR: ssl: store a ptr to crtlist in crtlist_entry
      MINOR: ssl/cli: update pointer to store in 'commit ssl cert'
      MEDIUM: ssl/cli: 'add ssl crt-list' command
      REGTEST: ssl/cli: test the 'add ssl crt-list' command
      BUG/MINOR: ssl: entry->ckch_inst not initialized
      REGTEST: ssl/cli: change test type to devel
      MINOR: ssl: split the line parsing of the crt-list
      MINOR: ssl/cli: support filters and options in add ssl crt-list
      MINOR: ssl: add a comment above the ssl_bind_conf keywords
      REGTEST: ssl/cli: tests options and filters w/ add ssl crt-list
      REGTEST: ssl: pollute the crt-list file
      BUG/MINOR: ssl/cli: initialize fcount int crtlist_entry
      REGTEST: ssl/cli: add other cases of 'add ssl crt-list'
      DOC: management: add the new crt-list CLI commands
      BUG/MINOR: ssl/cli: fix spaces in 'show ssl crt-list'
      MINOR: ssl/cli: 'del ssl crt-list' delete an entry
      MINOR: ssl/cli: replace dump/show ssl crt-list by '-n' option
      MINOR: ssl: improve the errors when a crt can't be open
      BUG/MINOR: ssl/cli: lock the ckch structures during crt-list delete
      MINOR: ssl/cli: improve error for bundle in add/del ssl crt-list
      MINOR: ssl/cli: 'del ssl cert' deletes a certificate
      BUG/MINOR: ssl: trailing slashes in directory names wrongly cached
      BUG/MINOR: ssl/cli: memory leak in 'set ssl cert'
      CLEANUP: ssl: use the refcount for the SSL_CTX'
      CLEANUP: ssl/cli: use the list of filters in the crtlist_entry
      BUG/MINOR: ssl: memleak of the struct cert_key_and_chain
      CLEANUP: ssl: remove a commentary in struct ckch_inst
      MINOR: ssl: initialize all list in ckch_inst_new()
      MINOR: ssl: free instances and SNIs with ckch_inst_free()
      MINOR: ssl: replace ckchs_free() by ckch_store_free()
      BUG/MEDIUM: ssl/cli: trying to access to free'd memory
      MINOR: ssl: ckch_store_new() alloc and init a ckch_store
      MINOR: ssl: crtlist_new() alloc and initialize a struct crtlist
      REORG: ssl: move some free/new functions
      MINOR: ssl: crtlist_entry_{new, free}
      BUG/MINOR: ssl: ssl_conf always set to NULL on crt-list parsing
      MINOR: ssl: don't alloc ssl_conf if no option found

Willy Tarreau (9):
      REGTEST: make the PROXY TLV validation depend on version 2.2
      REGTEST: make the unique-id test depend on version 2.0
      BUG/CRITICAL: hpack: never index a header into the headroom after wrapping
      BUG/MINOR: connection: always send address-less LOCAL PROXY connections
      MINOR: init: report in "haproxy -c" whether there were warnings or not
      MINOR: init: add -dW and "zero-warning" to reject configs with warnings
      MINOR: init: report the compiler version in haproxy -vv
      MINOR: init: report the haproxy version and executable path once on errors
      BUILD: Makefile: add linux-musl to TARGET

---

Reply via email to