Am 02.06.2019 um 13:00 schrieb Willy Tarreau:
> Hi,
> 
> HAProxy 2.0-dev5 was released on 2019/06/02. It added 92 new commits
> after version 2.0-dev4.
> 
> This version addresses a small number of no-to-trivial issues met while
> working on fixing other bugs and during benchmarks.
> 
> One such issue concerns the excess of wakeup/sleep in the H2 mux since
> 1.9, due to the fact that the connection's mux buffer is the same size
> as the streams' and that when forwarding large data, each stream is able
> to fill the buffer and leave no more room to other ones. There are ways
> to address this at the connection management level but this requires to
> enforce new internal rules that were not necessarily strict enough yet,
> and that would require to carefully recheck the code. This will be for
> 2.1. In the mean time, using a list of buffers (buffer ring) for the
> connection was way easier and significantly improved the performance,
> while taking advance on what was expected for 2.1 without taking much
> risk.
> 
> We also noticed that some locks and some atomic operations in the scheduler
> were taking a significant amount of time by causing lines to bounce between
> all cores. While it's often irritating to see this, I'm reminding myself
> that two years ago we were crossing fingers hoping that very basic multi-
> threading would be completed in time for 1.8 and that now we've already
> reached the point where bouncing CPU cache lines are the factor affecting
> the scalability, so I must admit it's quite pleasant to revisit such parts
> which were once consdered very fast, because now they're the bottlenecks!
> Thus some locks were reviewed again and the ones which were really not
> used anymore were released. Others have been identified to be reworked
> in 2.1.
> 
> Another indicator that we're getting closer to the release is that we're
> mostly facing bugs affecting stable releases as well. For example there
> was another bug in the LB code where it's possible to loop forever on a
> dead server, which also affects 1.9 and 1.8, the queue dispatching code
> was bogus since 1.9, and we discovered that "http-request reject" rules
> have never worked well...
> 
> Aside this, some improvements to the HTX code were made to better deal
> with 1xx messages. Strictly speaking they were not required for this
> version but I predicted that we'd face difficult to fix issues if we were
> to postpone them for 2.1, and in practice we found corner cases which are
> better addressed since these changes.
> 
> A user-visible change was made (I hate to do this but it has become a
> real pain and we'll have more trouble if we don't address it now). It's
> the presence of similarly-named servers in the config. I figured that 5
> years later, we continue to warn instead of reject this. Given all the
> dynamic stuff people are using, it creates a real havoc to still have to
> deal with this, so better reject this now than letting people down this
> breach for another 5 years.
> 
> The HTX performance was further increased by allowing zero-copy to be
> performed when receiving an H2 message. This will be visible in H2 to
> H2 scenarios mostly. In addition, the H2 performance appeared to be
> horrible when configured with large buffers, due to a few remaining
> bytes available after each message causing some realigns. This was now
> fixed.
> 
> The SOCKS4 upstream server code was merged. At the moment while SOCKS4
> happens to work for me, it fails for its author (Alec) and his fix really
> bothers me. While merging it we noticed that the current connection layer
> is still affected by a few very dirty corner cases that I really don't
> like. In short, the handshake code was never used to switch between
> reading and writing till now. It's not a big deal since this code is going
> to disappear soon, but when working on the replacement part, Olivier found
> other deeper issues that I really want to see addressed. Just for this,
> I'm expecting at least another -dev next week before a final release as we
> can't afford to have dirty hacks in this area in an LTS version or we risk
> to pay them the high price.
> 
> I just found while testing this release that "tcp-request inspect-delay"
> doesn't work in HTTP+HTX mode (it does not wait). I don't know why yet,
> but 1.9 has the same issue.
> 
> Overall most of the performance issues addressed in this version also
> affect 1.9 and sometimes even 1.8, so we could expect that a few of them
> will be backported later if they are of particular concern.
> 
> Now for the next steps, I'd like to emit another dev version this week
> (Wednesday or Thursday depending how things go with the pending issues),
> with the hope that we can do 2.0-final the week after, before the 15th.
> 
> 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.0/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.0/src/CHANGELOG
>    Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/

     Aleks Img TLS1.3 : https://hub.docker.com/r/me2digital/haproxy20-centos

```
HA-Proxy version 2.0-dev5 2019/06/02 - https://haproxy.org/
Build options :
  TARGET  = linux2628
  CPU     = generic
  CC      = gcc
  CFLAGS  = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv
-Wno-unused-label -Wno-sign-compare -Wno-unused-parameter
-Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered
-Wno-missing-field-initializers -Wtype-limits
  OPTIONS = USE_PCRE=1 USE_PCRE_JIT=1 USE_THREAD=1 USE_PTHREAD_PSHARED=1
USE_REGPARM=1 USE_LINUX_SPLICE=1 USE_GETADDRINFO=1 USE_OPENSSL=1 USE_LUA=1
USE_SLZ=1 USE_TFO=1 USE_NS=1

Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER +PCRE +PCRE_JIT
-PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD +PTHREAD_PSHARED +REGPARM
-STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT
+CRYPT_H -VSYSCALL +GETADDRINFO +OPENSSL +LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 -ZLIB
+SLZ +CPU_AFFINITY +TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL -SYSTEMD
-OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS

Default settings :
  bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with multi-threading support (MAX_THREADS=64, default=1).
Built with OpenSSL version : OpenSSL 1.1.1c  28 May 2019
Running on OpenSSL version : OpenSSL 1.1.1c  28 May 2019
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Built with Lua version : Lua 5.3.5
Built with network namespace support.
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT
IP_FREEBIND
Built with libslz for stateless compression.
Compression algorithms supported : identity("identity"), deflate("deflate"),
raw-deflate("deflate"), gzip("gzip")
Built with PCRE version : 8.32 2012-11-30
Running on PCRE version : 8.32 2012-11-30
PCRE library supports JIT : yes
Encrypted password support via crypt(3): yes
Built with the Prometheus exporter as a service

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available multiplexer protocols :
(protocols marked as <default> cannot be specified using 'proto' keyword)
              h2 : mode=HTX        side=FE|BE     mux=H2
              h2 : mode=HTTP       side=FE        mux=H2
       <default> : mode=HTX        side=FE|BE     mux=H1
       <default> : mode=TCP|HTTP   side=FE|BE     mux=PASS

Available services :
        prometheus-exporter

Available filters :
        [SPOE] spoe
        [COMP] compression
        [CACHE] cache
        [TRACE] trace
```

Is this test usefull in docker setup?

########################## Starting vtest ##########################
Testing with haproxy version: 2.0-dev5
#    top  TEST reg-tests/seamless-reload/abns_socket.vtc FAILED (2.239) exit=2
1 tests failed, 0 tests skipped, 39 tests passed

full log
https://storage.googleapis.com/gitlab-gprd-artifacts/e7/d6/e7d610daf50dc387a8ad49458809c73c1e7a77e37063e8bff2b230cd30f8147f/2019_06_03/223977233/231502725/job.log?response-content-type=text%2Fplain%3B%20charset%3Dutf-8&response-content-disposition=inline&GoogleAccessId=gitlab-object-storage-...@gitlab-production.iam.gserviceaccount.com&Signature=V4VwE5yHx%2FQ1fWI1ah0yElOQDdbQZ4qKk%2FwlOZkJNosYoIZIuaGL10glHzeq%0Ayc79dzMC3%2BIXyG1Hx5AHWpIaE%2FIfocn%2FUXuuOdNP8sPV8%2FHFUogN6puER8tn%0AGyM14%2F%2FLF2jMuiWrHCnrgU40wMUtKj6dYkYZAZYIH7RYQ%2FQi1hHFPdEWD3rM%0ARK%2FjpY6sIsSr%2B76lGVKC%2FBSf1qC6pMbz9cBOMqlFnN2dwlMb1sIPCX7wJZqr%0ANcnsQxa54T0JKvDEBLvxBYE6aHh2RnvTdqfKDMVI6rgBfkoiXmjWiiwcDpCn%0ARxuwNoAHXQecYrui%2FBjip0n7SRC0EbTl1FD3ZWx89g%3D%3D&Expires=1559562430

```
/tmp/haregtests-2019-06-03_10-35-38.CQS54T/vtc.11804.3e1085e1/LOG:*    top   0.1
RESETTING after reg-tests/seamless-reload/abns_socket.vtc

/tmp/haregtests-2019-06-03_10-35-38.CQS54T/vtc.11804.3e1085e1/LOG:***  h1    2.1
debug|[ALERT] 153/103606 (12296) : Current worker #1 (12303) exited with code
143 (Terminated)
```
> Willy
> ---
> Complete changelog :

[snipp]


Reply via email to