чт, 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 > > --- > >