version 2.3r1

2021/05/07 : 2.3r1 (1.0.0-239.197) - BUG/MINOR: activity: use the new pointer to calculate the new size in realloc() - BUILD: activity: do not include malloc.h - MINOR: hapee: Update the list of backported patches - BUILD: makefile: add new option USE_MEMORY_PROFILING - MINOR: activity: add the profiling.memory global setting - MINOR: activity: make "show profiling" also dump the memoery usage - MINOR: activity: make "show profiling" support a few arguments - MINOR: activity: clean up the show profiling io_handler a little bit - MEDIUM: activity: collect memory allocator statistics with USE_MEMORY_PROFILING - MINOR: activity: declare the storage for memory usage statistics - MINOR: activity: add a "memory" entry to "profiling" - MINOR: tools: add functions to retrieve the address of a symbol 2021/05/05 : 2.3r1 (1.0.0-239.185) - MINOR: debug: add a new "debug dev sym" command in expert mode - MINOR: pools/debug: slightly relax DEBUG_DONT_SHARE_POOLS - MEDIUM: pools: call malloc_trim() from pool_gc() - MINOR: compat: automatically include malloc.h on glibc - BUG/MINOR: ssl/cli: fix a lock leak when no memory available - BUG/MEDIUM: cli: prevent memory leak on write errors - BUG/MINOR: hlua: Don't rely on top of the stack when using Lua buffers - REGTESTS: add minimal CLI "add map" tests 2021/04/29 : 2.3r1 (1.0.0-239.177) - MINOR: hapee: Update the list of backported/hapee patches - DOC: general: fix example in set-timeout - REGTESTS: add regtest for http-request set-timeout - MINOR: stream: add timeout sample fetches - MINOR: stream: add sample fetches - MINOR: backend: add timeout sample fetches - MINOR: frontend: add client timeout sample fetch - MEDIUM: http_act: define set-timeout server/tunnel action - MEDIUM: stream: support a dynamic tunnel timeout - MEDIUM: stream: support a dynamic server timeout - MINOR: stream: prepare the hot refresh of timeouts - MINOR: action: define enum for timeout type of the set-timeout rule 2021/04/28 : 2.3r1 (1.0.0-239.165) - MINOR: peers: add informative flags about resync process for debugging - BUG/MEDIUM: peers: reset tables stage flags stages on new conns - BUG/MEDIUM: peers: re-work updates lookup during the sync on the fly - BUG/MEDIUM: peers: reset commitupdate value in new conns - BUG/MEDIUM: peers: reset starting point if peers appears longly disconnected - BUG/MEDIUM: peers: stop considering ack messages teaching a full resync - BUG/MEDIUM: peers: register last acked value as origin receiving a resync req - BUG/MEDIUM: peers: initialize resync timer to get an initial full resync - MINOR: hapee: Update the list of backported/hapee patches - BUG/MINOR: ssl: ssl_sock_prepare_ssl_ctx does not return an error code - BUG/MINOR: applet: Notify the other side if data were consumed by an applet - BUG/MINOR: htx: Preserve HTX flags when draining data from an HTX message - BUG/MINOR: mux-fcgi: Don't send normalized uri to FCGI application - BUG/MEDIUM: peers: re-work refcnt on table to protect against flush - BUG/MEDIUM: peers: re-work connection to new process during reload. - BUG/MINOR: peers: remove useless table check if initial resync is finished - BUG/MEDIUM: mux-h2: Properly handle shutdowns when received with data - BUG/MINOR: mworker: don't use oldpids[] anymore for reload - BUG/MINOR: mworker/init: don't reset nb_oldpids in non-mworker cases - BUG/MEDIUM: config: fix cpu-map notation with both process and threads - BUG/MEDIUM: mux-h2: Fix dfl calculation when merging CONTINUATION frames - BUG/MAJOR: mux-h2: Properly detect too large frames when decoding headers - BUG/MINOR: server: free srv.lb_nodes in free_server - BUG/MINOR: mux-h1: Release idle server H1 connection if data are received - BUG/MINOR: logs: Report the true number of retries if there was no connection - BUG/MINOR: http_htx: Remove BUG_ON() from http_get_stline() function - BUG/MINOR: http-fetch: Make method smp safe if headers were already forwarded - BUG/MINOR: ssl-samples: Fix ssl_bc_* samples when called from a health-check - MINOR: connection: Make bc_http_major compatible with tcp-checks - BUG/MINOR: connection: Fix fc_http_major and bc_http_major for TCP connections - MINOR: logs: Add support of checks as session origin to format lf strings - BUG/MINOR: checks: Set missing id to the dummy checks frontend - BUG/MEDIUM: threads: Ignore current thread to end its harmless period - DOC: ssl: Certificate hot update only works on fronted certificates - BUG/MEDIUM: sample: Fix adjusting size in field converter - MINOR: No longer rely on deprecated sample fetches for predefined ACLs - DOC: clarify that compression works for HTTP/2 - BUG/MINOR: tools: fix parsing "us" unit for timers - CONTRIB: halog: fix issue with array of type char - REGTESTS: ssl: mark set_ssl_cert_bundle.vtc as broken - DOC: Explicitly state only IPv4 are supported by forwardfor/originalto options 2021/04/02 : 2.3r1 (1.0.0-239.124) - MINOR: hapee: Update list of dropped/hapee patches - REGTESTS: ssl: "set ssl cert" and multi-certificates bundle 2021/04/01 : 2.3r1 (1.0.0-239.122) - MINOR: hapee: fix the backports command line - BUG/MINOR: http_fetch: make hdr_ip() resistant to empty fields - BUG/MINOR: ssl: Prevent removal of crt-list line if the instance is a default one - BUG/MINOR: ssl: Fix update of default certificate - BUILD: tcp: use IPPROTO_IPV6 instead of SOL_IPV6 on FreeBSD/MacOS - BUG/MINOR: tcp: fix silent-drop workaround for IPv6 - BUILD: backend: fix build breakage in idle conn locking fix - BUG/MEDIUM: time: make sure to always initialize the global tick - BUG/MINOR: stats: Apply proper styles in HTML status page. - BUG/MINOR: payload: Wait for more data if buffer is empty in payload/payload_lv - MEDIUM: backend: use a trylock to grab a connection on high FD counts as well - BUG/MEDIUM: mux-h1: make h1_shutw_conn() idempotent - BUG/MINOR: http_fetch: make hdr_ip() reject trailing characters - MINOR: tools: make url2ipv4 return the exact number of bytes parsed - BUG/MEDIUM: thread: Fix a deadlock if an isolated thread is marked as harmless - BUG/MEDIUM: fd: Take the fd_mig_lock when closing if no DWCAS is available. 2021/03/26 : 2.3r1 (1.0.0-239.106) 2021/03/24 : 2.3r1 (1.0.0-238.106) - CLEANUP: fd: remove unused fd_set_running_excl() - BUG/MEDIUM: fd: do not wait on FD removal in fd_delete() - MINOR: fd: remove the unneeded running bit from fd_insert() - MINOR: fd: make fd_clr_running() return the remaining running mask - MINOR: hapee: Update the list of backported/hapee patches - MINOR: ssl: add SSL_SERVER_LOCK label in threads.h - BUG/MEDIUM: lua: Always init the lua stack before referencing the context - BUG/MEDIUM: debug/lua: Use internal hlua function to dump the lua traceback - MINOR: lua: Slightly improve function dumping the lua traceback - BUILD: ssl: guard ecdh functions with SSL_CTX_set_tmp_ecdh macro - BUG/MINOR: ssl: Prevent disk access when using "add ssl crt-list" - BUG/MEDIUM: debug/lua: Don't dump the lua stack if not dumpable - MEDIUM: lua: Use a per-thread counter to track some non-reentrant parts of lua - MINOR/BUG: mworker/cli: do not use the unix_bind prefix for the master CLI socket - BUG/MINOR: protocol: add missing support of dgram unix socket. - BUG/MEDIUM: freq_ctr/threads: use the global_now_ms variable - MINOR: time: also provide a global, monotonic global_now_ms timer - BUG/MEDIUM: mux-fcgi: Fix locking of idle_conns lock in the FCGI I/O callback 2021/03/18 : 2.3r1 (1.0.0-238.88) - BUG/MINOR: sample: Rename SenderComID/TargetComID to SenderCompID/TargetCompID - MINOR: hapee: Update list of backports - BUG/MINOR: freq_ctr/threads: make use of the last updated global time - MINOR: time: export the global_now variable - BUG/MINOR: resolvers: Add missing case-insensitive comparisons of DNS hostnames - MINOR: resolvers: Don't try to match immediatly renewed ADD items - MINOR: resolvers: Use milliseconds for cached items in resolver responses - BUG/MEDIUM: resolvers: Skip DNS resolution at startup if SRV resolution is set - BUG/MEDIUM: resolvers: Don't release resolution from a requester callbacks - MINOR: resolvers: Directly call srvrq_update_srv_state() when possible - MINOR: resolvers: Add function to change the srv status based on SRV resolution - MINOR: resolvers: Purge answer items when a SRV resolution triggers an error - MINOR: resolvers: Use a function to remove answers attached to a resolution - BUG/MEDIUM: resolvers: Trigger a DNS resolution if an ADD item is obsolete - BUG/MINOR; resolvers: Ignore DNS resolution for expired SRV item - MINOR: resolvers: new function find_srvrq_answer_record() - BUG/MEDIUM: resolvers: Fix the loop looking for an existing ADD item - BUG/MEDIUM: resolvers: Don't set an address-less server as UP - BUG/MINOR: resolvers: Unlink DNS resolution to set RMAINT on SRV resolution - BUG/MINOR: resolvers: Reset server address on DNS error only on status change - BUG/MINOR: resolvers: Consider server to have no IP on DNS resolution error - Revert "BUG/MINOR: resolvers: Only renew TTL for SRV records with an additional record" - CLEANUP: tcp-rules: add missing actions in the tcp-request error message - BUG/MINOR: tcpcheck: Fix double free on error path when parsing tcp/http-check - BUG/MINOR: session: Add some forgotten tests on session's listener - BUG/MINOR: proxy/session: Be sure to have a listener to increment its counters - BUG/MINOR: tcpcheck: Update .health threshold of agent inside an agent-check - BUG/MEDIUM: filters: Set CF_FL_ANALYZE on channels when filters are attached - BUILD: atomic/arm64: force the register pairs to use in __ha_cas_dw() - BUG/MEDIUM: stick-tables: fix ref counter in table entry using multiple http tracksc. - OPTIM: task: automatically adjust the default runqueue-depth to the threads - MINOR: task: give the scheduler a bit more flexibility in the runqueue size - MEDIUM: task: remove the tasks_run_queue counter and have one per thread - MEDIUM: ssl: implement xprt_set_used and xprt_set_idle to relax context checks - MINOR: xprt: add new xprt_set_idle and xprt_set_used methods - MEDIUM: muxes: mark idle conns tasklets with TASK_F_USR1 - MINOR: task: add an application specific flag to the state: TASK_F_USR1 - BUG/MEDIUM: ssl: properly remove the TASK_HEAVY flag at end of handshake - MINOR: ssl: mark the SSL handshake tasklet as heavy - MINOR: task: limit the number of subsequent heavy tasks with flag TASK_HEAVY - MEDIUM: backend: use a trylock when trying to grab an idle connection - MINOR: pools: double the local pool cache size to 1 MB - MEDIUM: pools: add CONFIG_HAP_NO_GLOBAL_POOLS and CONFIG_HAP_GLOBAL_POOLS - MEDIUM: streams: do not use the streams lock anymore - MINOR: streams: use one list per stream instead of a global one - MINOR: cli/streams: make "show sess" dump all streams till the new epoch - MINOR: stream: add an "epoch" to figure which streams appeared when - MINOR: dynbuf: pass offer_buffers() the number of buffers instead of a threshold - MINOR: dynbuf: use regular lists instead of mt_lists for buffer_wait - MINOR: dynbuf: make the buffer wait queue per thread - OPTIM: lb-leastconn: do not unlink the server if it did not change - OPTIM: lb-leastconn: do not take the server lock on take_conn/drop_conn - OPTIM: lb-first: do not take the server lock on take_conn/drop_conn - MINOR: lb/api: let callers of take_conn/drop_conn tell if they have the lock - MINOR: server: move actconns to the per-thread structure - OPTIM: server: switch the actconn list to an mt-list - MINOR: listener: refine the default MAX_ACCEPT from 64 to 4 - MINOR: tasks: refine the default run queue depth - BUG/MEDIUM: session: NULL dereference possible when accessing the listener - MINOR: atomic: implement a more efficient arm64 __ha_cas_dw() using pairs - MINOR: atomic: add armv8.1-a atomics variant for cas-dw - BUG/MINOR: mt-list: always perform a cpu_relax call on failure - REORG: atomic: reimplement pl_cpu_relax() from atomic-ops.h - BUG/MINOR: ssl: don't truncate the file descriptor to 16 bits in debug mode - BUG/MINOR: hlua: Don't strip last non-LWS char in hlua_pushstrippedstring() - BUG/MINOR: backend: fix condition for reuse on mode HTTP - BUG/MINOR: http-ana: Don't increment HTTP error counter on read error/timeout - BUG/MINOR: mux-h2: Fix typo in scheme adjustment - DOC: spoe: Add a note about fragmentation support in HAProxy - BUG/MEDIUM: spoe: Kill applets if there are pending connections and nbthread > 1 - BUG/MINOR: connection: Use the client's dst family for adressless servers - BUG/MINOR: tcp-act: Don't forget to set the original port for IPv4 set-dst rule - BUG/MINOR: http-ana: Only consider dst address to process originalto option - BUG/MINOR: mux-h1: Immediately report H1C errors from h1_snd_buf() - BUG/MINOR: stats: fix compare of no-maint url suffix - CLEANUP: muxes: Remove useless if condition in show_fd function - BUG/MEDIUM: resolvers: Reset address for unresolved servers - BUG/MEDIUM: resolvers: Reset server address and port for obselete SRV records - BUG/MINOR: resolvers: new callback to properly handle SRV record errors - BUG/MINOR: resolvers: Only renew TTL for SRV records with an additional record - BUG/MINOR: resolvers: Fix condition to release received ARs if not assigned - BUG/MINOR: fd: properly wait for !running_mask in fd_set_running_excl() - BUG/MINOR: proxy: wake up all threads when sending the hard-stop signal - BUG/MEDIUM: cli/shutdown sessions: make it thread-safe - BUG/MEDIUM: proxy: use thread-safe stream killing on hard-stop - BUG/MEDIUM: vars: make functions vars_get_by_{name,desc} thread-safe - BUG/MINOR: sample: secure convs that accept base64 string and var name as args - MINOR: Configure the `cpp` userdiff driver for *.[ch] in .gitattributes 2021/03/16 : 2.3r1 (1.0.0-238.0) 2021/03/01 : 2.3r1 (1.0.0-237.0)

HAPEE-LB 2.3r1 – Changelog
English French German