haproxy/src
Willy Tarreau c984817bb8 MINOR: debug: do not limit backtraces to stuck threads
Historically for size limitation reasons, we would only dump the
backtrace of stuck threads. The problem is that when triggering
a panic or other reasons, we have no backtrace, which effectively
limits it to the watchdog timer. It's also visible in "show threads"
which used to report backtraces for all threads in 2.4 and displays
none nowadays, making its use much more limited.

A first approach could be to just dump the thread that triggers the
panic (in addition to stuck threads). But that remains quite limited
since "show threads" would still display nothing. This patch takes a
better approach consisting in dumping all non-idle threads. This way
the output is less polluted that with the older approach (no need to
dump all those waiting in the poller), and all active threads are
visible, in panics as well as in "show threads". As such, the CLI
command "debug dev panic" now dmups backtraces again. This is already
a benefit which will ease testing of various locations against the
ability to resolve useful symbols.

(cherry picked from commit 4adb2d864d7e3ca9df1e39beabf7b2ffa5aee35c)
Signed-off-by: Willy Tarreau <w@1wt.eu>
2024-11-06 19:04:38 +01:00
..
acl.c BUG/MINOR: acl: support built-in ACLs with acl() sample 2024-05-06 18:42:54 +02:00
action.c MINOR: support for http-request set-timeout client 2023-09-28 08:49:22 +02:00
activity.c MINOR: activity/memprofile: show per-DSO stats 2024-10-24 10:52:59 +02:00
applet.c BUG/MEDIUM: mux-quic: Don't unblock zero-copy fwding if blocked during nego 2024-06-06 14:15:51 +02:00
arg.c CLEANUP: arg: remove extra check in make_arg_list arg escaping 2022-11-22 16:27:52 +01:00
auth.c MINOR: auth: silence null dereference warning in check_user() 2022-11-24 15:24:02 +01:00
backend.c BUG/MEDIUM: queue: make sure never to queue when there's no more served conns 2024-10-23 17:21:13 +02:00
base64.c
cache.c BUG/MEDIUM: cache/stats: Wait to have the request before sending the response 2024-09-17 09:29:23 +02:00
calltrace.c BUG/MINOR: calltrace: fix 'now' being used in place of 'date' 2023-04-27 18:14:57 +02:00
cbuf.c
cfgcond.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
cfgdiag.c
cfgparse-global.c BUG/MINOR: cfgparse-global: fix allowed args number for setenv 2024-10-01 11:21:56 +02:00
cfgparse-listen.c BUG/MINOR: cfgparse-listen: fix option httpslog override warning message 2024-09-18 14:49:31 +02:00
cfgparse-quic.c MINOR: mux-quic: support glitches 2024-05-16 10:58:20 +02:00
cfgparse-ssl.c DOC: configuration: update the crt-list documentation 2024-05-21 18:30:45 +02:00
cfgparse-tcp.c MINOR: capabilities: add cap_sys_admin support 2024-04-30 21:40:17 +02:00
cfgparse-unix.c
cfgparse.c BUILD: debug: silence a build warning with threads disabled 2024-10-24 16:54:28 +02:00
channel.c MINOR: channel: implement ci_insert() function 2024-09-03 18:49:07 +02:00
check.c MEDIUM: dynbuf: generalize the use of b_dequeue() to detach buffer_wait 2024-05-10 17:18:13 +02:00
chunk.c MEDIUM: init: initialize the trash earlier 2023-09-08 16:25:19 +02:00
cli.c BUG/MEDIUM: cli: Be sure to catch immediate client abort 2024-10-01 08:00:55 +02:00
clock.c BUG/MINOR: clock: validate that now_offset still applies to the current date 2024-09-17 09:27:43 +02:00
compression.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
connection.c MINOR: connection: add new sample fetch functions fc_err_name and bc_err_name 2024-11-06 19:04:38 +01:00
cpuset.c CLEANUP: Reapply xalloc_cast.cocci 2024-04-02 07:27:33 +02:00
debug.c MINOR: debug: do not limit backtraces to stuck threads 2024-11-06 19:04:38 +01:00
dgram.c MINOR: dgram: allow to set rcv/sndbuf for dgram sockets as well 2023-10-18 17:01:19 +02:00
dict.c
dns_ring.c MEDIUM: ring/applet: turn the wait_entry list to an mt_list instead 2024-03-25 17:34:19 +00:00
dns.c MEDIUM: ring/applet: turn the wait_entry list to an mt_list instead 2024-03-25 17:34:19 +00:00
dynbuf.c MEDIUM: dynbuf: implement emergency buffers 2024-05-10 17:18:13 +02:00
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
errors.c DEBUG: errors: add name hint for startup-logs memory area 2024-05-21 17:55:20 +02:00
ev_epoll.c BUG/MINOR: polling: fix time reporting when using busy polling 2024-09-17 09:26:43 +02:00
ev_evports.c BUG/MINOR: polling: fix time reporting when using busy polling 2024-09-17 09:26:43 +02:00
ev_kqueue.c BUG/MINOR: polling: fix time reporting when using busy polling 2024-09-17 09:26:43 +02:00
ev_poll.c DEBUG: pollers/fd: add thread id suffix to per-thread memory areas name hints 2024-05-24 12:07:18 +02:00
ev_select.c DEBUG: pollers/fd: add thread id suffix to per-thread memory areas name hints 2024-05-24 12:07:18 +02:00
event_hdl.c CLEANUP: Reapply strcmp.cocci (2) 2024-04-02 07:27:33 +02:00
extcheck.c MINOR: ext-check: add an option to preserve environment variables 2023-11-23 16:53:57 +01:00
fcgi-app.c BUG/MINOR: fcgi-app: handle a possible strdup() failure 2024-09-03 18:37:59 +02:00
fcgi.c BUG/MAJOR: fcgi: Fix uninitialized reserved bytes 2022-12-09 12:23:14 +01:00
fd.c BUILD: fd: errno is also needed without poll() 2024-05-27 19:14:14 +02:00
filters.c BUG/MAJOR: filters/htx: Add a flag to state the payload is altered by a filter 2024-10-23 17:21:56 +02:00
fix.c
flt_bwlim.c BUG/MEDIUM: bwlim: Be sure to never set the analyze expiration date in past 2024-07-11 15:44:58 +02:00
flt_http_comp.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
flt_spoe.c BUG/MEDIUM: spoe: Be sure to create a SPOE applet if none on the current thread 2024-07-11 15:44:58 +02:00
flt_trace.c BUG/MINOR: trace: show wall-clock date, not internal date in show activity 2023-04-27 18:22:34 +02:00
freq_ctr.c BUG/MEDIUM: freq-ctr: Don't report overshoot for long inactivity period 2023-11-08 16:38:06 +01:00
frontend.c MINOR: counters: move freq-ctr from proxy/server into counters struct 2024-05-02 10:55:25 +02:00
guid.c MINOR: guid: define guid_is_valid_fmt() 2024-04-26 11:29:25 +02:00
h1_htx.c BUG/MEDIUM: mux-h1/mux-h2: Reject upgrades with payload on H2 side only 2024-10-01 07:46:33 +02:00
h1.c BUG/MINOR: h1: do not forward h2c upgrade header token 2024-10-01 07:46:33 +02:00
h2.c BUG/MINOR: h2: reject extended connect for h2c protocol 2024-10-01 07:46:33 +02:00
h3_stats.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
h3.c BUG/MINOR: h3: properly reject too long header responses 2024-09-03 18:49:07 +02:00
haproxy.c MINOR: cli/debug: show dev: add cmdline and version 2024-11-06 18:57:42 +01:00
hash.c BUILD: hash: use __fallthrough in hash_djb2() 2022-11-14 11:14:02 +01:00
hlua_fcn.c MINOR: stats: define stats-file output format support 2024-04-26 10:20:57 +02:00
hlua.c BUG/MEDIUM: hlua: properly handle sample func errors in hlua_run_sample_{fetch,conv}() 2024-10-23 16:41:46 +02:00
hpack-dec.c BUG/CRITICAL: http: properly reject empty http header field names 2023-02-14 08:48:54 +01:00
hpack-enc.c
hpack-huff.c BUG/MEDIUM: hpack: fix incorrect huffman decoding of some control chars 2023-01-26 11:36:39 +01:00
hpack-tbl.c
hq_interop.c MINOR: dynbuf: pass a criticality argument to b_alloc() 2024-05-10 17:18:13 +02:00
http_acl.c
http_act.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
http_ana.c MINOR: stream: Save last evaluated rule on invalid yield 2024-11-06 15:50:09 +01:00
http_client.c BUG/MINOR: httpclient: return NULL when no proxy available during httpclient_new() 2024-10-23 17:21:27 +02:00
http_conv.c CLEANUP: assorted typo fixes in the code and comments 2023-04-01 18:33:40 +02:00
http_ext.c OPTIM: http_ext: avoid useless copy in http_7239_extract_{ipv4,ipv6} 2024-03-25 16:24:15 +01:00
http_fetch.c MEDIUM: tree-wide: add logformat expressions wrapper 2024-04-04 19:10:01 +02:00
http_htx.c BUG/MINOR: http-htx: Support default path during scheme based normalization 2024-05-24 16:17:24 +02:00
http_rules.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
http.c MEDIUM: http: add the ability to redefine http-err-codes and http-fail-codes 2024-01-11 15:10:08 +01:00
htx.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
init.c
jwt.c BUG/MEDIUM: jwt: Clear SSL error queue on error when checking the signature 2024-07-29 11:56:13 +02:00
lb_chash.c MEDIUM: lb-chash: Deterministic node hashes based on server address 2024-04-02 07:00:10 +02:00
lb_fas.c
lb_fwlc.c
lb_fwrr.c
lb_map.c
lb_ss.c MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
linuxcap.c MINOR: capabilities: add cap_sys_admin support 2024-04-30 21:40:17 +02:00
listener.c BUG/MEDIUM: cli: Deadlock when setting frontend maxconn 2024-10-01 08:01:43 +02:00
log.c MEDIUM: log: relax some checks and emit diag warnings instead in lf_expr_postcheck() 2024-08-16 14:34:21 +02:00
lru.c BUG/MINOR: lru: fix the standalone test case for invalid revision 2024-04-13 08:43:12 +02:00
mailers.c MINOR: mailers/hlua: disable email sending from lua 2023-05-05 16:28:32 +02:00
map.c MEDIUM: cli/applet: Stop to test opposite SC in I/O handler of CLI commands 2024-03-28 17:28:20 +01:00
mjson.c BUILD: mjson: Fix warning about unused variables 2023-05-11 09:22:46 +02:00
mqtt.c
mux_fcgi.c MINOR: connection: No longer include stconn type header in connection-t.h 2024-09-30 15:40:44 +02:00
mux_h1.c BUG/MEDIUM: mux-h1: Fix how timeouts are applied on H1 connections 2024-11-06 15:48:25 +01:00
mux_h2.c BUG/MEDIUM: mux-h2: Remove H2S from send list if data are sent via 0-copy FF 2024-10-23 17:24:03 +02:00
mux_pt.c MINOR: connection: No longer include stconn type header in connection-t.h 2024-09-30 15:40:44 +02:00
mux_quic.c BUG/MINOR: mux-quic: do not close STREAM with empty FIN if no data sent 2024-10-23 17:23:49 +02:00
mworker-prog.c MEDIUM: clock: replace timeval "now" with integer "now_ns" 2023-04-28 16:08:08 +02:00
mworker.c BUG/MINOR: mworker: fix mworker-max-reloads parser 2024-10-23 17:23:37 +02:00
namespace.c BUG/MINOR: namespace: missing free in netns_sig_stop() 2023-06-14 11:27:29 +02:00
ncbuf.c MINOR: ncbuf: missing malloc checks in standalone code 2023-05-12 09:45:30 +02:00
pattern.c BUG/MINOR: pattern: do not leave a leading comma on "set" error messages 2024-09-10 09:07:27 +02:00
payload.c MEDIUM: tree-wide: fetches that may return IPV4+IPV6 now return ADDR 2023-07-03 16:32:01 +02:00
peers.c BUG/MINOR: peers: local entries updates may not be advertised after resync 2024-09-17 09:28:34 +02:00
pipe.c
pool.c MINOR: pools: export the pools variable 2024-10-24 16:55:20 +02:00
proto_quic.c CLEANUP: quic: rename TID affinity elements 2024-07-29 11:56:13 +02:00
proto_rhttp.c CLEANUP: proto: rename TID affinity callbacks 2024-07-29 11:56:13 +02:00
proto_sockpair.c MEDIUM: proto: duplicate receivers marked RX_F_MUST_DUP 2023-04-21 17:41:26 +02:00
proto_tcp.c BUG/MINOR: proto_tcp: keep error msg if listen() fails 2024-09-03 18:38:52 +02:00
proto_udp.c MEDIUM: udp: allow to retrieve the frontend destination address 2024-01-02 11:44:42 +01:00
proto_uxdg.c MINOR: proto_ux: ability to dump ABNS names in error messages 2023-02-23 15:05:05 +01:00
proto_uxst.c BUG/MINOR: proto_uxst: delete fd from fdtab if listen() fails 2024-09-03 18:49:07 +02:00
protocol.c MINOR: listener/protocol: add proto name in alerts 2024-04-12 18:51:40 +02:00
proxy.c BUG/MEDIUM: cli: Deadlock when setting frontend maxconn 2024-10-01 08:01:43 +02:00
qmux_http.c MEDIUM: mux-quic: add BUG_ON if sending on locally closed QCS 2023-12-21 15:42:08 +01:00
qmux_trace.c MEDIUM: mux-quic: simplify sending API 2024-01-31 16:28:54 +01:00
qpack-dec.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
qpack-enc.c BUG/MEDIUM: qpack: allow 6xx..9xx status codes 2024-01-29 15:40:19 +01:00
qpack-tbl.c CLEANUP: qpack: properly use the QPACK macros not HPACK ones in debug code 2022-11-24 15:38:26 +01:00
queue.c BUG/MEDIUM: queue: always dequeue the backend when redistributing the last server 2024-10-02 10:17:31 +02:00
quic_ack.c BUILD: quic: Variable name typo inside a BUG_ON(). 2024-02-05 14:31:21 +01:00
quic_cc_cubic.c BUILD: quic: 32bits build broken by wrong integer conversions for printf() 2024-09-03 18:49:07 +02:00
quic_cc_newreno.c MINOR: quic: HyStart++ implementation (RFC 9406) 2024-04-02 18:47:19 +02:00
quic_cc_nocc.c REORG: quic: Move QUIC path definitions/declarations to quic_cc module 2023-11-28 15:37:50 +01:00
quic_cc.c CLEANUP: quic: fix headers 2022-10-03 16:25:17 +02:00
quic_cid.c BUG/MINOR: quic: fix race-condition on trace for CID retrieval 2024-07-03 08:45:26 +02:00
quic_cli.c BUILD: quic: 32bits build broken by wrong integer conversions for printf() 2024-09-03 18:49:07 +02:00
quic_conn.c BUG/MEDIUM: quic: avoid freezing 0RTT connections 2024-10-23 17:22:18 +02:00
quic_fctl.c MINOR: mux-quic: define a flow control related type 2024-01-31 16:28:54 +01:00
quic_frame.c MINOR: quic: Modify NEW_TOKEN frame structure (qf_new_token struct) 2024-09-05 16:23:20 +02:00
quic_loss.c MINOR: quic: Add a counter for reordered packets 2024-02-14 11:32:29 +01:00
quic_openssl_compat.c BUG/MEDIUM: quic: keylog callback not called (USE_OPENSSL_COMPAT) 2024-01-16 10:17:27 +01:00
quic_retransmit.c BUG/MEDIUM: quic: handle retransmit for standalone FIN STREAM 2024-09-19 10:54:02 +02:00
quic_retry.c BUG/MEDIUM: quic: always validate sender address on 0-RTT 2024-09-05 16:42:48 +02:00
quic_rx.c BUG/MEDIUM: quic: handle retransmit for standalone FIN STREAM 2024-09-19 10:54:02 +02:00
quic_sock.c BUG/MEDIUM: quic: always validate sender address on 0-RTT 2024-09-05 16:42:48 +02:00
quic_ssl.c BUG/MEDIUM: quic: avoid freezing 0RTT connections 2024-10-23 17:22:18 +02:00
quic_stats.c MINOR: stats: introduce a more expressive stat definition method 2024-04-26 10:20:57 +02:00
quic_stream.c BUG/MINOR: quic: prevent freeze after early QCS closure 2024-09-19 10:54:02 +02:00
quic_tls.c MEDIUM: ssl/quic: implement quic crypto with EVP_AEAD 2024-09-05 16:15:15 +02:00
quic_token.c MINOR: quic: Token for future connections implementation. 2024-09-05 16:17:27 +02:00
quic_tp.c BUG/MEDIUM: quic: don't blindly rely on unaligned accesses 2024-04-06 00:07:49 +02:00
quic_trace.c BUG/MINOR: quic: Crash from trace dumping SSL eary data status (AWS-LC) 2024-09-05 16:54:16 +02:00
quic_tx.c BUG/MINOR: quic: fix malformed probing packet building 2024-11-06 15:55:11 +01:00
raw_sock.c MINOR: rawsock: set connection error codes when returning from recv/send/splice 2024-11-06 19:04:38 +01:00
regex.c BUG/MINOR: regex: Properly handle PCRE2 lib compiled without JIT support 2022-09-01 19:34:46 +02:00
resolvers.c BUG/MINOR: promex: Skip resolvers metrics when there is no resolver section 2024-06-12 09:13:19 +02:00
ring.c CLEANUP: assorted typo fixes in the code and comments 2024-04-17 11:14:44 +02:00
sample.c BUG/MINOR: jwt: fix variable initialisation 2024-07-11 15:44:58 +02:00
server_state.c BUG/MEDIUM: server: server stuck in maintenance after FQDN change 2024-10-21 11:19:02 +02:00
server.c BUG/MEDIUM: server: fix race on servers_list during server deletion 2024-10-24 16:40:35 +02:00
session.c BUG/MINOR: session: Eval L4/L5 rules defined in the default section 2024-07-29 11:56:13 +02:00
sha1.c
shctx.c DEBUG: shctx: name shared memory using vma_set_name() 2024-05-21 17:55:03 +02:00
signal.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
sink.c Revert "MEDIUM: sink: don't set NOLINGER flag on the outgoing stream interface" 2024-07-29 16:30:42 +02:00
slz.c IMPORT: slz: implement a synchronous flush() operation 2023-06-30 16:12:36 +02:00
sock_inet.c MINOR: protocol: move the global reuseport flag to the protocols 2023-04-23 09:46:15 +02:00
sock_unix.c MEIDUM: unix sock: use my_socketat to create bind socket 2024-04-30 21:38:24 +02:00
sock.c MEDIUM: config: prevent communication with privileged ports 2024-05-24 14:36:31 +02:00
ssl_ckch.c BUG/MINOR: ssl/cli: 'set ssl cert' does not check the transaction name correctly 2024-11-06 15:47:13 +01:00
ssl_crtlist.c MEDIUM: ssl: don't load file by discovering them in crt-store 2024-05-21 18:30:45 +02:00
ssl_gencert.c MEDIUM: ssl: allow to change the OpenSSL security level from global section 2024-03-12 17:37:11 +01:00
ssl_ocsp.c MEDIUM: ssl/cli: handle crt-store keywords in crt-list over the CLI 2024-05-17 17:35:51 +02:00
ssl_sample.c MINOR: ssl: implement keylog fetches for backend connections 2024-04-19 14:48:44 +02:00
ssl_sock.c CLEANUP: connection: properly name the CO_ER_SSL_FATAL enum entry 2024-11-06 15:53:56 +01:00
ssl_utils.c BUILD: ssl: ssl_c_r_dn fetches uses functiosn only available since 1.1.1 2023-05-15 12:07:52 +02:00
stats-file.c BUILD: stats: remove non portable getline() usage 2024-05-17 14:53:19 +02:00
stats-html.c BUG/MEDIUM: stats-html: Never dump more data than expected during 0-copy FF 2024-10-23 17:23:57 +02:00
stats-json.c MINOR: stats: update ambiguous "metrics" naming to "stat_cols" 2024-04-26 10:20:57 +02:00
stats-proxy.c MINOR: stats: extract proxy clear-counter in a dedicated function 2024-05-02 16:43:26 +02:00
stats.c BUG/MINOR: stats: Fix the name for the total number of streams created 2024-11-06 18:59:58 +01:00
stconn.c BUG/MEDIUM: stconn: Report blocked send if sends are blocked by an error 2024-10-24 12:17:19 +02:00
stick_table.c BUG/MINOR: stick-table: fix crash for src_inc_gpc() without stkcounter 2024-07-29 11:56:13 +02:00
stream.c MINOR: stream/stats: Expose the total number of streams ever created in stats 2024-11-06 18:59:58 +01:00
systemd.c MEDIUM: mworker: get rid of libsystemd 2024-04-03 15:53:18 +02:00
task.c CLEANUP: assorted typo fixes in the code and comments 2023-11-23 16:23:14 +01:00
tcp_act.c MINOR: server: define pool-conn-name keyword 2024-05-24 14:36:31 +02:00
tcp_rules.c MINOR: stream: Save last evaluated rule on invalid yield 2024-11-06 15:50:09 +01:00
tcp_sample.c MINOR: sample: accept_date / request_date return %Ts / %tr timestamp values 2023-07-24 17:12:29 +02:00
tcpcheck.c BUG/MINOR: tcpcheck: report correct error in tcp-check rule parser 2024-06-06 14:07:11 +02:00
thread.c MINOR: config: add thread-hard-limit to set an upper bound to nbthread 2024-05-24 09:46:49 +02:00
time.c
tools.c MINOR: tools: Implement ipaddrcpy(). 2024-09-05 16:12:41 +02:00
trace.c BUG/MINOR: trace: stop rewriting argv with -dt 2024-11-06 15:46:27 +01:00
uri_auth.c MINOR: stats: use STAT_F_* prefix for flags 2024-04-22 16:25:18 +02:00
uri_normalizer.c
vars.c MAJOR: log: implement proper postparsing for logformat expressions 2024-04-04 19:10:01 +02:00
version.c
wdt.c BUG/MEDIUM: wdt: fix wrong thread being checked for sleeping 2023-02-17 16:01:34 +01:00
xprt_handshake.c
xprt_quic.c CLEANUP: quic: rename TID affinity elements 2024-07-29 11:56:13 +02:00