чт, 23 мая 2019 г. в 01:28, Willy Tarreau <w...@1wt.eu>:

> Hi,
>
> HAProxy 2.0-dev4 was released on 2019/05/22. It added 83 new commits
> after version 2.0-dev3.
>
> This release completes the integration of a few pending features and
> the ongoing necessary cleanups before 2.0.
>
> A few bugs were addressed in the way to deal with certain connection
> errors, but overall there was nothing dramatic, which indicates we're
> stabilizing (it has been running flawlessly for 1 week now on
> haproxy.org).
>
> There are a few new features that were already planned. One is the support
> of event ports as an alternate (read "faster") polling method on Solaris,
> by Manu. Another one is the replacement of the slow stream processing by
> a better and more reliable watchdog. It currently only supports Linux
> however, but a FreeBSD port seems reasonably easy to do. It will detect
> inter-thread deadlocks as well as tasks stuck looping in an endless list
> which has been corrupted, and will provoke a panic, dumping all threads
> states, then doing an abort (in hope to get a core). This will allow the
> problem to be immediately detected and even the service to be automatically
> restarted when the service manager supports it. It's also possible to
> consult all threads' states on the CLI using "show threads".
>
> As previously discussed we have also deprecated the very old req* and rsp*
> directives with warnings suggesting what to use instead. They still work
> but the goal is to kill them in 2.1, so there's no rush to convert your
> configs given that 2.0 is LTS but you will be encouraged to progressively
> adapt your future configs. Likewise "option forceclose" now warns and
> "resolution_pool_size" is an error (it never existed in any release).
>
> WURFL is now HTX-aware. There are some new developer-friendly commands
> on the CLI when built with -DDEBUG_DEV, they allow to inspect memory
> areas or send signals, which is convenient during development. It should
> have been done earlier!
>
> Cirrus-CI is enabled to test builds on FreeBSD. To be honest at this point
> it's still not completely clear to me how to fully use it as their
> interface
> is a bit limited but it has the merit of existing. It doesn't build as
> often
> as Travis-CI, and it decided to build the last fix after I tagged this
> release, showing that apparently there's still a build error on FreeBSD,
> that I don't understand for now.
>
> Lots of code cleanups were done, and some old build options were refreshed
> to match their equivalent makefile option.
>
> Overall, aside the possible occasional build issues here and there, it's
> expected to be a bit more stable than dev3, which I'm currently already
> satisfied with.
>
> Let's set on -dev5 around next Wednesday with the final polishing.
> Depending
> on the amount of issues we'll be able to decide on a release date.
>


I'd like to run sanitizers on vaious combinations, like ZLIB / SLZ, PCRE /
PCRE2 ...
ok, let us do it before Wednesday


>
> 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/
>
> Willy
> ---
> Complete changelog :
> Bertrand Jacquin (1):
>       DOC: fix "successful" typo
>
> Christopher Faulet (1):
>       BUG/MINOR: http_fetch: Rely on the smp direction for "cookie()" and
> "hdr()"
>
> Emmanuel Hocdet (3):
>       BUILD: makefile: use USE_OBSOLETE_LINKER for solaris
>       BUILD: makefile: remove -fomit-frame-pointer optimisation (solaris)
>       MAJOR: polling: add event ports support (Solaris)
>
> Ilya Shipitsin (2):
>       BUILD: enable freebsd builds on cirrus-ci
>       BUILD: travis: add sanitizers to travis-ci builds
>
> Olivier Houchard (3):
>       BUG/MEDIUM: streams: Don't use CF_EOI to decide if the request is
> complete.
>       BUG/MEDIUM: streams: Try to L7 retry before aborting the connection.
>       BUG/MEDIUM: streams: Don't switch from SI_ST_CON to SI_ST_DIS on
> read0.
>
> Tim Duesterhus (3):
>       MEDIUM: Make 'option forceclose' actually warn
>       MEDIUM: Make 'resolution_pool_size' directive fatal
>       BUG/MINOR: mworker: Fix memory leak of mworker_proc members
>
> William Lallemand (1):
>       MINOR: init: setenv HAPROXY_CFGFILES
>
> Willy Tarreau (61):
>       DOC: management: place "show activity" at the right place
>       MINOR: cli/activity: show the dumping thread ID starting at 1
>       MINOR: task: export global_task_mask
>       MINOR: cli/debug: add a thread dump function
>       BUG/MINOR: debug: make ha_task_dump() always check the task before
> dumping it
>       BUG/MINOR: debug: make ha_task_dump() actually dump the requested
> task
>       MINOR: debug: make ha_thread_dump() and ha_task_dump() take a buffer
>       BUG/MINOR: debug: don't check the call date on tasklets
>       MINOR: thread: implement ha_thread_relax()
>       MINOR: task: put barriers after each write to curr_task
>       MINOR: task: always reset curr_task when freeing a task or tasklet
>       MINOR: stream: detach the stream from its own task on stream_free()
>       MEDIUM: debug/threads: implement an advanced thread dump system
>       REGTEST: extend the check duration on tls_health_checks and mark it
> slow
>       MINOR: threads/init: synchronize the threads startup
>       MEDIUM: init/mworker: make the pipe register function a regular
> initcall
>       CLEANUP: memory: make the fault injection code use the OTHER_LOCK
> label
>       CLEANUP: threads: remove the now unused START_LOCK label
>       MINOR: init/threads: make the global threads an array of structs
>       MINOR: threads: add each thread's clockid into the global thread_info
>       CLEANUP: stream: remove an obsolete debugging test
>       MINOR: tools: add dump_hex()
>       MINOR: debug: implement ha_panic()
>       MINOR: debug/cli: add some debugging commands for developers
>       MINOR: tools: provide a may_access() function and make dump_hex()
> use it
>       MINOR: debug: make ha_panic() report threads starting at 1
>       REORG: compat: move some integer limit definitions from standard.h
> to compat.h
>       REORG: threads: move the struct thread_info from global.h to
> hathreads.h
>       MINOR: compat: make sure to always define clockid_t
>       MINOR: threads: always place the clockid in the struct thread_info
>       MINOR: threads: add a thread-local thread_info pointer "ti"
>       MINOR: time: move the cpu, mono, and idle time to thread_info
>       MINOR: time: add a function to retrieve another thread's cputime
>       MINOR: debug: report each thread's cpu usage in "show thread"
>       BUILD: threads: only assign the clock_id when supported
>       CLEANUP: time: refine the test on _POSIX_TIMERS
>       MINOR: compat: define a new empty type empty_t for non-implemented
> fields
>       CLEANUP: time: switch clockid_t to empty_t when not available
>       CLEANUP: objtype: make obj_type() and obj_type_name() take consts
>       MINOR: debug: switch to SIGURG for thread dumps
>       CLEANUP: threads: really move thread_info to hathreads.c
>       MINOR: threads: make threads_{harmless|want_rdv}_mask constant 0
> without threads
>       CLEANUP: debug: always report harmless/want_rdv even without threads
>       MINOR: threads: implement ha_tkill() and ha_tkillall()
>       CLEANUP: debug: make use of ha_tkill() and remove ifdefs
>       MINOR: stream: introduce a stream_dump() function and use it in
> stream_dump_and_crash()
>       MINOR: debug: dump streams when an applet, iocb or stream is known
>       MINOR: threads: add a "stuck" flag to the thread_info struct
>       MINOR: threads: add a timer_t per thread in thread_info
>       MAJOR: watchdog: implement a thread lockup detection mechanism
>       MINOR: stream: remove the cpu time detection from process_stream()
>       MINOR: connection: report the mux names in "haproxy -vv"
>       CLEANUP: mux-h1: use "H1" and not "h1" as the mux's name
>       MINOR: WURFL: do not emit warnings when not configured
>       CONTRIB: wurfl: address 3 build issues in the wurfl dummy library
>       BUG/MEDIUM: init/threads: provide per-thread alloc/free function
> callbacks
>       BUILD: time: remove the test on _POSIX_C_SOURCE
>       CLEANUP: build: rename some build macros to use the USE_* ones
>       CLEANUP: raw_sock: remove support for very old linux splice bug
> workaround
>       BUG/MEDIUM: dns: make the port numbers unsigned
>       MEDIUM: config: deprecate the antique req* and rsp* commands
>
> mbellomi (8):
>       BUG/MEDIUM: WURFL: segfault in wurfl-get() with missing info.
>       MINOR: WURFL: call header_retireve_callback() in dummy library
>       MINOR: WURFL: fixed Engine load failed error when
> wurfl-information-list contains wurfl_root_id
>       MINOR: WURFL: shows log messages during module initialization
>       MINOR: WURFL: removes heading wurfl-information-separator from
> wurfl-get-all() and wurfl-get() results
>       MINOR: WURFL: wurfl_get() and wurfl_get_all() now return an empty
> string if device detection fails
>       MEDIUM: WURFL: HTX awareness.
>       MINOR: WURFL: module version bump to 2.0
>
> ---
>
>

Reply via email to