Changes since version 2.7-dev1 : Amaury Denoyelle (13): BUG/MINOR: qpack: fix build with QPACK_DEBUG MINOR: h3: handle errors on HEADERS parsing/QPACK decoding BUG/MINOR: qpack: abort on dynamic index field line decoding MINOR: qpack: properly handle invalid dynamic table references CLEANUP: mux-quic: adjust comment on qcs_consume() MINOR: ncbuf: implement ncb_is_fragmented() BUG/MINOR: mux-quic: do not signal FIN if gap in buffer CLEANUP: mux-quic: do not export qc_get_ncbuf REORG: mux-quic: reorganize flow-control fields MINOR: mux-quic: implement accessor for sedesc MEDIUM: mux-quic: refactor streams opening MINOR: mux-quic: rename qcs flag FIN_RECV to SIZE_KNOWN MINOR: mux-quic: emit FINAL_SIZE_ERROR on invalid STREAM size Christian Ruppert (1): BUILD: Makefile: Add Lua 5.4 autodetect Emeric Brun (3): MINOR: fd: add a new FD_DISOWN flag to prevent from closing a deleted FD BUG/MEDIUM: ssl/fd: unexpected fd close using async engine MINOR: fd: Add BUG_ON checks on fd_insert() Frédéric Lécaille (7): MINOR: task: Add tasklet_wakeup_after() BUG/MINOR: quic: Dropped packets not counted (with RX buffers full) MINOR: quic: Add new stats counter to diagnose RX buffer overrun MINOR: quic: Duplicated QUIC_RX_BUFSZ definition MINOR: quic: Improvements for the datagrams receipt CLEANUP: h2: Typo fix in h2_unsubcribe() traces MINOR: quic: Increase the QUIC connections RX buffer size (upto 64Kb) Ilya Shipitsin (1): CI: re-enable gcc asan builds William Lallemand (2): MEDIUM: mworker: set the iocb of the socketpair without using fd_insert() CLEANUP: mworker: rename mworker_pipe to mworker_sockpair Willy Tarreau (53): MINOR: tinfo: make tid temporarily still reflect global ID CLEANUP: config: remove unused proc_mask() MINOR: debug: remove mask support from "debug dev sched" MEDIUM: task: add and preset a thread ID in the task struct MEDIUM: task/debug: move the ->thread_mask integrity checks to ->tid MAJOR: task: use t->tid instead of ffsl(t->thread_mask) to take the thread ID MAJOR: task: replace t->thread_mask with 1<tid when thread mask is needed CLEANUP: task: remove thread_mask from the struct task MEDIUM: applet: only keep appctx_new_*() and drop appctx_new() MEDIUM: task: only keep task_new_*() and drop task_new() MINOR: applet: always use task_new_on() on applet creation MEDIUM: task: remove TASK_SHARED_WQ and only use t->tid MINOR: task: replace task_set_affinity() with task_set_thread() CLEANUP: task: remove the unused task_unlink_rq() CLEANUP: task: remove the now unused TASK_GLOBAL flag MINOR: task: make rqueue_ticks atomic MEDIUM: task: move the shared runqueue to one per thread MEDIUM: task: replace the global rq_lock with a per-rq one MINOR: task: remove grq_total and use rq_total instead MINOR: task: replace global_tasks_mask with a check for tree's emptiness MEDIUM: task: use regular eb32 trees for the run queues MEDIUM: queue: revert to regular inter-task wakeups MINOR: thread: make wake_thread() take care of the sleeping threads mask MINOR: thread: move the flags to the shared cache line MINOR: thread: only use atomic ops to touch the flags MINOR: poller: centralize poll return handling MEDIUM: polling: make update_fd_polling() not care about sleeping threads MINOR: poller: update_fd_polling: wake a random other thread MEDIUM: thread: add a new per-thread flag TH_FL_NOTIFIED to remember wakeups MEDIUM: tasks/fd: replace sleeping_thread_mask with a TH_FL_SLEEPING flag MINOR: tinfo: add the tgid to the thread_info struct MINOR: tinfo: replace the tgid with tgid_bit in tgroup_info MINOR: tinfo: add the mask of enabled threads in each group MINOR: debug: use ltid_bit in ha_thread_dump() MINOR: wdt: use ltid_bit in wdt_handler() MINOR: clock: use ltid_bit in clock_report_idle() MINOR: thread: use ltid_bit in ha_tkillall() MINOR: thread: add a new all_tgroups_mask variable to know about active tgroups CLEANUP: thread: remove thread_sync_release() and thread_sync_mask MEDIUM: tinfo: add a dynamic thread-group context MEDIUM: thread: make stopping_threads per-group and add stopping_tgroups MAJOR: threads: change thread_isolate to support inter-group synchronization MINOR: thread: add is_thread_harmless() to know if a thread already is harmless MINOR: debug: mark oneself harmless while waiting for threads to finish MINOR: wdt: do not rely on threads_to_dump anymore MEDIUM: debug: make the thread dumper not rely on a thread mask anymore BUILD: debug: fix build issue on clang with previous commit BUILD: debug: re-export thread_dump_state BUG/MEDIUM: threads: fix incorrect thread group being used on soft-stop BUG/MEDIUM: thread: check stopping thread against local bit and not global one MINOR: proxy: use tg->threads_enabled in hard_stop() to detect stopped threads BUG/MINOR: peers/config: always fill the bind_conf's argument BUG/MEDIUM: peers/config: properly set the thread mask