Hi,

HAProxy 1.9-dev11 was released on 2018/12/16. It added 146 new commits
after version 1.9-dev10.

I expected to release this week-end after running it on the haproxy.org
servers, but some annoying issues faced in production took some time to
get fixed and delayed the release.

Things have been quiet now, with 18 hours running without a glitch in
legacy mode (without HTX) and now 13 hours an counting with HTX enabled,
so things are getting much better.

More regtests were added (thanks Fred and Pieter) and things are going
well overall.

Among the final updates that were being worked on, Christopher managed
to finalize the HTX coverage so that cache, compression and Lua are now
supported, Olivier completed the server idle connection pool configuration,
and William added the reload operation to the master CLI.

We figured that HTTP/2 to the servers made little sense without enabling
http-reuse, and since the "safe" mode used to be the recommended setting
for several years now, it was decided that it was about time to turn it
on by default.

Just before this release I've spent some time splitting the README file
into README + INSTALL so that README now becomes much more accessible and
newcomers don't have to scan it hole before finding their information. The
INSTALL file aims at providing you with the quick information you need for
common use and spends longer paragraphs on the details close to the end.
This should make the documentation more accessible overall.

I know that Christopher still has one pending issue to address involving
compression and HTX, hopefully we'll have it tomorrow and we'll be able to
continue the cleanup process. Now I'm targetting Wednesday for the release.
Based on what I'm seeing now and the nature of the last fixed bugs, I'm
reasonably confident, and have even hesitated doing it this evening.

So there's still some time to beat it hard, but at this point I don't expect
that any particular bug will postpone the release any further anyway.

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

Willy
---
Complete changelog :
Christopher Faulet (26):
      BUG/MINOR: mux-h1: Fix conn_mode processing for headerless outgoing 
messages
      BUG/MEDIUM: mux-h1: Add a BUSY mode to not loop on pipelinned requests
      BUG/MEDIUM: mux-h1: Don't loop on the headers parsing if the read0 was 
received
      BUG/MEDIUM: htx: Always do a defrag if a block value is replace by a 
bigger one
      MINOR: compression: Rename the function check_legacy_http_comp_flt()
      MINOR: cache/htx: Don't use the same cache on HTX and legacy HTTP proxies
      MINOR: cache: Register the cache as a data filter only if response is 
cacheable
      MEDIUM: cache/htx: Add the HTX support into the cache
      MINOR: cache: Improve and simplify the cache configuration check
      MINOR: filters: Export the name of known filters
      MEDIUM: cache/compression: Add a way to safely combined compression and 
cache
      MEDIUM: cache: Require an explicit filter declaration if other filters 
are used
      BUG/MEDIUM: mux-h1: Fix the zero-copy on output for chunked messages
      BUG/MEDIUM: mux-h1: Fix loop if server closes its connection with 
unparsed data
      MINOR: mux-h1: Add helper functions to wake a stream from recv or send
      BUG/MEDIUM: mux-h1: Wake the stream for send once the connection is 
established
      BUG/MINOR: proto_htx: Fix htx_res_set_status to also set the reason
      BUG/MINOR: stats: Parse post data for HTX streams
      MINOR: payload/htx: Adapt smp_fetch_len to be HTX aware
      MINOR: http_fecth: Implement body_len and body_size sample fetches for 
the HTX
      MAJOR: lua: Forbid calls to Channel functions for LUA scripts in HTTP 
proxies
      MEDIUM: lua/htx: Adapt functions of the HTTP to be compatible with HTX
      MINOR: lua/htx: Adapt the functions get_in_length and is_full to be HTX 
aware
      MAJOR: lua/htx: Adapt HTTP applets to support HTX messages
      MINOR: lua: Remove useless check on the messages state in HTTP functions
      BUG/MAJOR: compression/cache: Make it really works with these both filters

Frederic Lecaille (5):
      REGTEST: Reg testing improvements.
      REGTEST: Add a first test for health-checks.
      REGTEST: Reg test for "check" health-check option.
      REGTEST: level 1 health-check test 2.
      REGTEST: Add miscellaneous reg tests for health-checks.
      REGTEST: Add a reg test for HTTP cookies.

Jérôme Magnin (2):
      DOC: clarify that check-sni needs an argument.
      DOC: refer to check-sni in the documentation of sni

Olivier Houchard (22):
      BUG/MEDIUM: connection: Don't use the provided conn_stream if it was 
tried.
      BUG/MEDIUM: connections: Remove error flags when retrying.
      BUG/MEDIUM: mux-h2: Don't forget to set the CS_FL_EOS flag with htx.
      BUG/MEDIUM: connections: Remove CS_FL_EOS | CS_FL_REOS on retry.
      BUG/MEDIUM: stream_interface: Don't report read0 if we were not connected.
      BUG/MEDIUM: connection: Just make sure we closed the fd on connection 
failure.
      MEDIUM: mux: Add an optional "reset" method.
      BUG/MEDIUM: connections: Don't attempt to reuse an unusable connection.
      MEDIUM: htx: Try to take a connection over if it has no owner.
      BUG/MEDIUM: htx: When performing zero-copy, start from the right offset.
      BUG/MEDIUM: log: Don't call sample_fetch_as_type if we don't have a 
stream.
      BUG/MEDIUM: h2: Don't forget to destroy the h2s after deferred shut.
      MEDIUM: proxy: Set http-reuse safe as default.
      MEDIUM: servers: Add a command to limit the number of idling connections.
      MEDIUM: servers: Replace idle-timeout with pool-purge-delay.
      MEDIUM: mux: Destroy the stream before trying to add the conn to the idle 
list.
      MEDIUM: mux: provide the session to the init() and attach() method.
      MEDIUM: sessions: Don't keep an infinite number of idling connections.
      MEDIUM: servers: Be more agressive when adding H2 connection to idle 
lists.
      MEDIUM: mux_h2: Always set CS_FL_NOT_FIRST for new conn_streams.
      MINOR: pools: Cast to volatile int * instead of int *.
      BUG/MEDIUM: h2: Don't destroy the h2s if it still has a cs attached.

PiBa-NL (3):
      REGTEST/MINOR: remove double body specification for server txresp
      REGTEST/MINOR: skip seamless-reload test with abns socket on freebsd
      REGTEST/MINOR: remove health-check that can make the test fail

Remi Gacogne (5):
      BUG: dns: Prevent stack-exhaustion via recursion loop in dns_read_name
      BUG: dns: Prevent out-of-bounds read in dns_read_name()
      BUG: dns: Prevent out-of-bounds read in dns_validate_dns_response()
      BUG: dns: Fix out-of-bounds read via signedness error in 
dns_validate_dns_response()
      BUG: dns: Fix off-by-one write in dns_validate_dns_response()

Rosen Penev (1):
      BUILD: ssl: Fix compilation without deprecated OpenSSL 1.1 APIs

William Lallemand (18):
      MEDIUM: cli: rework the CLI proxy parser
      MINOR: cli: parse prompt command in the CLI proxy
      MINOR: cli: implements 'quit' in the CLI proxy
      BUG/MINOR: cli: wait for payload data even without prompt
      MEDIUM: cli: handle payload in CLI proxy
      MINOR: cli: use pcli_flags for prompt activation
      DOC: master CLI documentation in management.txt
      MINOR: cli: change 'show proc' output of old processes
      MEDIUM: cli: store CLI level in the appctx
      MEDIUM: cli: show and change CLI permissions
      CLEANUP: cli: use dedicated define instead of appctx ones
      MEDIUM: cli: handle CLI level from the master CLI
      BUG/MEDIUM: cli: handle correctly prefix and payload
      BUILD: Makefile: Implements the help target
      MINOR: mworker: set all_threads_mask and pid_bit to 1
      BUG/MINOR: mworker: don't use unitialized mworker_proc struct
      MINOR: cli: implements 'reload' on master CLI
      BUG/MEDIUM: threads: don't close the thread waker pipe if not init

Willy Tarreau (63):
      BUG/MEDIUM: mux-h2: fix encoding of non-GET/POST methods
      BUG/MINOR: hpack: fix off-by-one in header name encoding length 
calculation
      CLEANUP: hpack: no need to include chunk.h, only include buf.h
      MINOR: hpack: simplify the len to bytes conversion
      MINOR: hpack: use ist2bin() to copy header names in hpack_encode_header()
      MINOR: hpack: optimize header encoding for short names
      CONTRIB: hpack: add a compressed stream generator for the encoder
      MEDIUM: hpack: make it possible to encode any static header name
      MINOR: hpack: move the length computation and encoding functions to .h
      MINOR: hpack: provide a function to encode a short indexed header
      MINOR: hpack: provide a function to encode a long indexed header
      MINOR: hpack: provide new functions to encode the ":status" header
      MEDIUM: mux-h2: make use of standard HPACK encoding functions for the 
status
      MINOR: hpack: provide a function to encode an HTTP method
      MEDIUM: mux-h2: make use of hpack_encode_method() to encode the method
      MINOR: hpack: provide a function to encode an HTTP scheme
      MEDIUM: mux-h2: make use of hpack_encode_scheme() to encode the scheme
      MINOR: hpack: provide a function to encode an HTTP path
      MEDIUM: mux-h2: make use of hpack_encode_path() to encode the path
      REGTEST: add the HTTP rules test involving HTX processing
      REORG: connection: centralize the conn_set_{tos,mark,quickack} functions
      REORG: htx: merge types+proto into common/htx.h
      REORG: http: create http_msg.c to place there some legacy HTTP parts
      REORG: h1: move legacy http functions to http_msg.c
      REORG: h1: move the h1_state definition to proto_http
      CLEANUP: h1: remove some occurrences of unneeded h1.h inclusions
      REORG: h1: merge types+proto into common/h1.h
      CLEANUP: stream: remove SF_TUNNEL, SF_INITIALIZED, SF_CONN_TAR
      MEDIUM: mux-h1: implement true zero-copy of DATA blocks
      MINOR: config: round up global.tune.bufsize to the next multiple of 2 
void*
      BUG/MINOR: mux-h2: refrain from muxing during the preface
      BUG/MINOR: mux-h2: advertise a larger connection window size
      MINOR: mux-h2: avoid copying large blocks into full buffers
      MEDIUM: mux-h2: implement true zero-copy send of large HTX DATA blocks
      MINOR: mux-h2: force reads to be HTX-aligned in HTX mode
      REGTEST: the cache regtest requires haproxy 1.9
      REGTESTS: adjust the http-rules regtest to support window updates
      REGTEST: add a few HTTP messaging tests
      MINOR: lb: make the leastconn algorithm more accurate
      REGTEST: fix missing space in checks/s00001
      REGTEST: http-messaging: add "option http-buffer-request" for H2 tests
      BUG/MEDIUM: cache: fix random crash on filter parser's error path
      MINOR: connection: realign empty buffers in muxes, not transport layers
      MINOR: mux_h1/h2: simplify the zero-copy Rx alignment
      MINOR: backend: count the number of connect and reuse per server and per 
backend
      BUG/MINOR: stats: fix inversion of failed header rewrites and other 
statuses
      MINOR: tools: increase the number of ITOA strings to 16
      MINOR: cache: report the number of cache lookups and cache hits
      MEDIUM: tasks: check the global task mask instead of the thread number
      MINOR: mworker/cli: indicate in the master prompt when a reload failed
      BUG/MEDIUM: mux-h1: make sure we always have at least one HTX block to 
send
      BUG/MAJOR: backend: only update server's counters when the server exists
      MINOR: tools: preset the port of fd-based "sockets" to zero
      BUG/MINOR: log: fix logging to both FD and IP
      BUILD: thread: properly report multi-thread support
      BUG/MINOR: logs: leave startup-logs global and not per-thread
      BUG/MEDIUM: htx/cache: use the correct class of error codes on abort
      BUG/MINOR: cache: also consider CF_SHUTR to abort delivery
      MINOR: debug: make the ABORT_NOW macro use a volatile int
      BUG/MEDIUM: mux-h1: don't try to process an empty input buffer
      DOC: clarify the agent-check status line syntax
      BUG/MAJOR: hpack: fix length check for short names encoding
      DOC: split the README into README + INSTALL

---

Reply via email to