Hi, HAProxy 1.9-dev10 was released on 2018/12/08. It added 68 new commits after version 1.9-dev9.
No more painful changes, tons of bugs fixed already, in various places. I intend to deploy this one on haproxy.org this week-end and observe. I'll however leave HTX off for now as we've found two small last-minute issues with it that we'll address on monday (I may redeploy just after). Having everything integrated allowed a much easier bug party than before. There were a few cleanups and fixes in the master-worker part regarding already scheduled tasks that were causing trouble. Among the remaining issues we've noticed, I can enumerate these ones : - empty requests on connection retries to servers - CPU loop in some cases when using pipelining with HTX (hence why I'm not enabling it :-)) - a problem of wrong header index in HTX mode when overwriting the start line, revealed by the http-rules test when ported to HTX, resulting in a missing header on the other side. I know that William still wants to address a few minor things in the master-worker code, Christopher has patches to make the cache compatible with HTX, Cyril has some doc rearrangements he'd like to merge before the release, we need to disable HTTP manipulation at the buffer level in Lua, adjust the server-side idle connection management a bit (mostly set limits), write some more varnishtest checks, and to polish remaining things (remove unused flags, rename confusing ones, possibly merge/rename a few files, and check all the FIXMEs left). And I think we'll be fine for a release by the end of next week and celebrate the event the week after! 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 (19): MINOR: htx: Rename functions htx_*_to_str() to be H1 specific BUG/MINOR: htx: Force HTTP/1.1 on H1 formatting when version is 1.1 or above BUG/MINOR: flt_trace/compression: Use the right flag to add the HTX support BUG/MEDIUM: mux-h1: Always set CS_FL_RCV_MORE when data are received in h1_recv() MINOR: mux-h1: Make sure to return 1 in h1_recv() when needed BUG/MEDIUM: mux-h1: Release the mux H1 in h1_process() if there is no h1s BUG/MINOR: proto_htx: Truncate the request when an error is detected BUG/MINOR: mux-h1: Check h1m flags to set the server conn_mode on request path MEDIUM: htx: Rework conversion from a buffer to an htx structure MEDIUM: channel/htx: Add functions for forward HTX data MINOR: mux-h1: Don't adjust anymore the amount of data sent in h1_snd_buf() CLEANUP: htx: Fix indentation here and there in HTX files MINOR: mux-h1: Allow partial data consumption during outgoing data processing MINOR: mux-h1: Drain obuf if the output is closed after sending data BUG/MEDIUM: htx: Set the right start-line offset after a defrag BUG/MEDIUM: mux-h1: Be sure to have a conn_stream to set CS_FL_REOS in h1_recv MINOR: mux-h1: Set CS_FL_EOS when read0 is detected and no data are pending BUG/MINOR: stream-int: Process read0 even if no data was received in si_cs_recv BUG/MINOR: mux-h1: Remove the connection header when it is useless Frédéric Lécaille (1): REGTEST: Move LUA reg test 4 to level 1. Jérôme Magnin (2): BUG/MINOR: fix ssl_fc_alpn and actually add ssl_bc_alpn MINOR: sample: add bc_http_major Olivier Houchard (15): BUG/MEDIUM: h1: Destroy a connection after detach if it has no owner. BUG/MEDIUM: h2: Don't forget to wake the tasklet after shutr/shutw. BUG/MEDIUM: stream_interface: Make REALLY sure we read all the data. MEDIUM: mux-h1: Revamp the way subscriptions are handled. BUG/MEDIUM: h2: When sending in HTX, make sure the caller knows we sent all. BUG/MEDIUM: h1: Correctly report used data with no len. MEDIUM: h1: Realign the ibuf before calling rcv_buf if needed. BUG/MEDIUM: mux_pt: Always set CS_FL_RCV_MORE. BUG/MEDIUM: stream: Don't dereference s->txn when it is not there yet. BUG/MEDIUM: connections: Reuse an already attached conn_stream. BUG/MEDIUM: connections: Split CS_FL_RCV_MORE into 2 flags. BUG/MEDIUM: h1: Don't free the connection if it's an outgoing connection. BUG/MEDIUM: h1: Set CS_FL_REOS if we had a read0. BUG/MEDIUM: sample: Don't treat SMP_T_METH as SMP_T_STR. BUG/MEDIUM: h2: Don't try to chunk data when using HTX. William Lallemand (3): BUG/MEDIUM: mworker: stop proxies which have no listener in the master BUG/MEDIUM: mworker: stop every tasks in the master BUG/MEDIUM: mworker: fix several typos in mworker_cleantasks() Willy Tarreau (28): BUG/MEDIUM: mux-h2: properly update the window size in HTX mode BUG/MEDIUM: mux-h2: make sure to always report HTX EOM when consumed by headers BUG/MEDIUM: mux-h2: stop sending HTX once the mux is blocked BUG/MEDIUM: mux-h2: don't send more HTX data than requested MINOR: mux-h2: stop on non-DATA and non-EOM HTX blocks MINOR: htx: make htx_from_buf() adjust the size only on new buffers MINOR: htx: add buf_room_for_htx_data() to help optimize buffer transfers MEDIUM: mux-h1: make use of buf_room_for_htx_data() instead of b_room() MEDIUM: mux-h1: attempt to zero-copy Rx DATA transfers MEDIUM: mux-h1: avoid a double copy on the Tx path whenever possible BUG/MEDIUM: stream-int: don't mark as blocked an empty buffer on Rx BUG/MEDIUM: mux-h2: use the correct offset for the HTX start line BUG/MEDIUM: mux-h2: stop sending using HTX on errors MINOR: stream-int: add a new blocking condition on the remote connection BUG/MEDIUM: stream-int: don't attempt to receive if the connection is not established BUG/MEDIUM: lua: block on remote connection establishment SCRIPTS/REGTEST: merge grep+sed into sed in run-regtests MINOR: ist: add functions to copy/uppercase/lowercase into a buffer or string MEDIUM: ist: always turn header names to lower case MINOR: h2: don't turn HTX header names to lower case anymore MEDIUM: ist: use local conversion arrays to case conversion MINOR: htx: switch to case sensitive search of lower case header names REGTEST: fix the Lua test file name in test lua/h00002 :-) REGTEST: add a basic test for HTTP rules manipulating headers BUG/MEDIUM: htx: fix typo in htx_replace_stline() making it fail all the time REGTEST: make the HTTP rules test compatible with HTTP/2 as well MINOR: compiler: add a new macro ALREADY_CHECKED() BUILD: h2: mark the start line already checked to avoid warnings ---