haproxy/src
Willy Tarreau 5be7c198e5 DEBUG: cli: add a new "debug dev fd" expert command
This command will scan the whole file descriptors space to look for
existing FDs that are unknown to haproxy's fdtab, and will try to dump
a maximum number of information about them (including type, mode, device,
size, uid/gid, cloexec, O_* flags, socket types and addresses when
relevant). The goal is to help detecting inherited FDs from parent
processes as well as potential leaks.

Some of those listed are actually known but handled so deep into some
systems that they're not in the fdtab (such as epoll FDs or inter-
thread pipes). This might be refined in the future so that these ones
become known and do not appear.

Example of output:

 $ socat - /tmp/sock1 <<< "expert-mode on;debug dev fd"

    0 type=tty. mod=0620 dev=0x8803 siz=0 uid=1000 gid=5 fs=0x16 ino=0x6 getfd=+0 getfl=O_RDONLY,O_APPEND
    1 type=tty. mod=0620 dev=0x8803 siz=0 uid=1000 gid=5 fs=0x16 ino=0x6 getfd=+0 getfl=O_RDONLY,O_APPEND
    2 type=tty. mod=0620 dev=0x8803 siz=0 uid=1000 gid=5 fs=0x16 ino=0x6 getfd=+0 getfl=O_RDONLY,O_APPEND
    3 type=pipe mod=0600 dev=0 siz=0 uid=1000 gid=100 fs=0xc ino=0x18112348 getfd=+0
    4 type=epol mod=0600 dev=0 siz=0 uid=0 gid=0 fs=0xd ino=0x3674 getfd=+0 getfl=O_RDONLY
   33 type=pipe mod=0600 dev=0 siz=0 uid=1000 gid=100 fs=0xc ino=0x24af8251 getfd=+0 getfl=O_RDONLY
   34 type=epol mod=0600 dev=0 siz=0 uid=0 gid=0 fs=0xd ino=0x3674 getfd=+0 getfl=O_RDONLY
   36 type=pipe mod=0600 dev=0 siz=0 uid=1000 gid=100 fs=0xc ino=0x24af8d1b getfd=+0 getfl=O_RDONLY
   37 type=epol mod=0600 dev=0 siz=0 uid=0 gid=0 fs=0xd ino=0x3674 getfd=+0 getfl=O_RDONLY
   39 type=pipe mod=0600 dev=0 siz=0 uid=1000 gid=100 fs=0xc ino=0x24afa04f getfd=+0 getfl=O_RDONLY
   41 type=pipe mod=0600 dev=0 siz=0 uid=1000 gid=100 fs=0xc ino=0x24af8252 getfd=+0 getfl=O_RDONLY
   42 type=epol mod=0600 dev=0 siz=0 uid=0 gid=0 fs=0xd ino=0x3674 getfd=+0 getfl=O_RDONLY
2022-01-24 20:26:09 +01:00
..
acl.c MINOR: add ::1 to predefined LOCALHOST acl 2021-10-18 07:21:28 +02:00
action.c CLEANUP: Apply ha_free.cocci 2021-11-05 07:48:38 +01:00
activity.c MINOR: memprof: add one pointer size to the size of allocations 2021-10-22 16:40:09 +02:00
applet.c BUG/MINOR: applet: Notify the other side if data were consumed by an applet 2021-04-28 10:51:08 +02:00
arg.c MINOR: arg: Be able to forbid unresolved args when building an argument list 2021-09-30 16:37:05 +02:00
auth.c BUILD: auth: include missing list.h 2021-05-08 12:29:51 +02:00
backend.c BUILD: tree-wide: avoid warnings caused by redundant checks of obj_types 2021-12-06 09:11:47 +01:00
base64.c BUG/MINOR: base64: base64urldec() ignores padding in output size check 2021-08-25 16:14:14 +02:00
cache.c BUG/MINOR: cache: Fix loop on cache entries in "show cache" 2021-11-23 16:15:02 +01:00
calltrace.c
cbuf.c MINOR: quic: Make circular buffer internal buffers be variable-sized. 2021-09-23 15:27:25 +02:00
cfgcond.c MINOR: ssl: Add ssllib_name_startswith precondition 2021-10-13 11:28:08 +02:00
cfgdiag.c CLEANUP: assorted typo fixes in the code and comments 2021-04-26 10:42:58 +02:00
cfgparse-global.c MINOR: config: use a standard parser for the "nbthread" keyword 2021-09-27 09:47:40 +02:00
cfgparse-listen.c BUG/MEDIUM: sample: Cumulate frontend and backend sample validity flags 2021-10-15 14:12:19 +02:00
cfgparse-quic.c MEDIUM: quic: implement Retry emission 2022-01-12 11:08:48 +01:00
cfgparse-ssl.c BUG/MEDIUM: ssl: initialize correctly ssl w/ default-server 2021-12-29 14:42:16 +01:00
cfgparse-tcp.c MINOR: server: prepare parsing for dynamic servers 2021-03-18 15:51:12 +01:00
cfgparse-unix.c
cfgparse.c MINOR: quic: set listener accept cb on parsing 2022-01-24 10:30:49 +01:00
channel.c MINOR: channel: add new function co_getdelim() to support multiple delimiters 2022-01-19 19:16:47 +01:00
check.c BUG/MEDIUM: checks: fix the starting thread for external checks 2021-10-20 18:43:30 +02:00
chunk.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
cli.c BUG/MEDIUM: mcli: always realign wrapping buffers before parsing them 2022-01-20 18:56:57 +01:00
clock.c REORG: thread/clock: move the clock parts of thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
compression.c REORG: thread/clock: move the clock parts of thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
connection.c MEDIUM: connection: rename fc_conn_err and bc_conn_err to fc_err and bc_err 2021-11-06 09:20:07 +01:00
cpuset.c BUG/MEDIUM: cpuset: fix cpuset size for FreeBSD 2021-10-15 17:16:11 +02:00
debug.c DEBUG: cli: add a new "debug dev fd" expert command 2022-01-24 20:26:09 +01:00
dgram.c
dict.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dns.c MINOR: stream: Use backend stream-interface dst address instead of target_addr 2021-10-27 11:35:59 +02:00
dynbuf.c REORG: thread/sched: move the last dynamic thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
ebpttree.c
ebsttree.c
ebtree.c
errors.c CLEANUP: Apply xalloc_size.cocci 2021-09-17 17:22:05 +02:00
ev_epoll.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
ev_evports.c BUILD: evports: remove a leftover from the dead_fd cleanup 2021-11-30 09:34:32 +01:00
ev_kqueue.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
ev_poll.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
ev_select.c MINOR: activity: get the run_time from the clock updates 2021-10-08 17:22:26 +02:00
extcheck.c MINOR: proxy: Introduce proxy flags to replace disabled bitfield 2021-10-15 14:12:19 +02:00
fcgi-app.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
fcgi.c
fd.c REORG: thread/sched: move the thread_info flags to the thread_ctx 2021-10-08 17:22:26 +02:00
filters.c MINOR: proxy: Introduce proxy flags to replace disabled bitfield 2021-10-15 14:12:19 +02:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
flt_http_comp.c MINOR: compression: Warn for 'compression offload' in defaults sections 2021-11-05 16:36:42 +01:00
flt_spoe.c REORG: thread/sched: move the last dynamic thread_info to thread_ctx 2021-10-08 17:22:26 +02:00
flt_trace.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
freq_ctr.c CLEANUP: tree-wide: remove unneeded include time.h in ~20 files 2021-10-07 01:41:14 +02:00
frontend.c MINOR: frontend: Rely on client src and dst addresses at stream level 2021-10-27 11:34:21 +02:00
h1_htx.c BUG/MEDIUM: mux-h1: Adjust conditions to ask more space in the channel buffer 2021-09-23 16:13:17 +02:00
h1.c BUG/MEDIUM: h1: Properly reset h1m flags when headers parsing is restarted 2021-12-02 09:46:29 +01:00
h2.c CLEANUP: Apply ist.cocci 2021-11-08 08:05:39 +01:00
h3.c MINOR: h3: fix possible invalid dereference on htx parsing 2021-12-08 15:52:59 +01:00
haproxy.c BUILD: cpuset: fix build issue on macos introduced by previous change 2022-01-11 15:09:49 +01:00
hash.c
hlua_fcn.c BUG/MINOR: lua: don't expose internal proxies 2021-11-24 16:14:24 +01:00
hlua.c BUG/MINOR: httpclient/lua: don't pop the lua stack when getting headers 2022-01-14 20:51:31 +01:00
hpack-dec.c CLEANUP: Use isttest(const struct ist) whenever possible 2021-03-03 05:07:10 +01:00
hpack-enc.c
hpack-huff.c CONTRIB: move some dev-specific tools to dev/ 2021-04-02 17:48:42 +02:00
hpack-tbl.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
hq_interop.c CLEANUP: assorted typo fixes in the code and comments This is 29th iteration of typo fixes 2022-01-03 14:40:58 +01:00
http_acl.c
http_act.c MINOR: http-rules: Add capture action to http-after-response ruleset 2021-12-07 19:04:33 +01:00
http_ana.c BUG/MEDIUM: http-ana: Preserve response's FLT_END analyser on L7 retry 2022-01-04 10:56:04 +01:00
http_client.c BUG/MINOR: httpclient: set default Accept and User-Agent headers 2022-01-14 20:46:21 +01:00
http_conv.c BUG/MINOR threads: Use get_(local|gm)time instead of (local|gm)time 2021-08-30 06:14:32 +02:00
http_fetch.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
http_htx.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
http_rules.c BUG/MEDIUM: sample: Cumulate frontend and backend sample validity flags 2021-10-15 14:12:19 +02:00
http.c MINOR: http: Add 422-Unprocessable-Content error message 2021-09-28 16:21:25 +02:00
htx.c BUG/MEDIUM: htx: Adjust length to add DATA block in an empty HTX buffer 2022-01-13 09:34:22 +01:00
init.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
jwt.c BUG/MINOR: jwt: Fix jwt_parse_alg incorrectly returning JWS_ALG_NONE 2021-11-03 17:19:48 +01:00
lb_chash.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fas.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fwlc.c BUG/MEDIUM: leastconn: fix rare possibility of divide by zero 2021-09-22 07:24:02 +02:00
lb_fwrr.c CLEANUP: assorted typo fixes in the code and comments 2021-08-16 12:37:59 +02:00
lb_map.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
listener.c CLEANUP: listeners: remove unreachable code in clone_listener() 2021-10-16 14:58:30 +02:00
log.c BUG/MAJOR: segfault using multiple log forward sections. 2021-12-01 15:21:56 +01:00
lru.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
mailers.c MINOR: task: provide 3 task_new_* wrappers to simplify the API 2021-10-01 18:36:29 +02:00
map.c MINOR: map/acl: print the count of all the map/acl entries in "show map/acl" 2021-05-25 08:44:45 +02:00
mjson.c MINOR: sample: converter: Add mjson library. 2021-04-15 17:05:38 +02:00
mqtt.c CLEANUP: Apply ist.cocci 2021-11-05 07:48:38 +01:00
mux_fcgi.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
mux_h1.c BUG/MEDIUM: connection: properly leave stopping list on error 2022-01-12 17:31:01 +01:00
mux_h2.c MEDIUM: h2/hpack: emit a Dynamic Table Size Update after settings change 2022-01-20 05:01:03 +01:00
mux_pt.c MINOR: stream-int: Notify mux when the buffer is not stuck when calling rcv_buf 2021-09-23 16:25:47 +02:00
mux_quic.c MINOR: quic: Remove the packet number space TX MT_LIST 2022-01-20 16:43:06 +01:00
mworker-prog.c BUG/MINOR: mworker: doesn't launch the program postparser 2021-11-10 15:53:01 +01:00
mworker.c MINOR: mworker: change the way we set PROC_O_LEAVING 2021-11-10 15:53:01 +01:00
namespace.c
pattern.c CLEANUP: Add haproxy/xxhash.h to avoid modifying import/xxhash.h 2021-09-11 19:58:45 +02:00
payload.c BUILD: payload: include tools.h in payload.c 2021-05-08 13:55:40 +02:00
peers.c BUG/MEDIUM: peers: properly skip conn_cur from incoming messages 2021-12-24 13:48:39 +01:00
pipe.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
pool.c DEBUG: pools: add new build option DEBUG_POOL_TRACING 2022-01-24 16:40:48 +01:00
proto_quic.c MINOR: quic: set listener accept cb on parsing 2022-01-24 10:30:49 +01:00
proto_sockpair.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
proto_tcp.c BUILD: tree-wide: avoid warnings caused by redundant checks of obj_types 2021-12-06 09:11:47 +01:00
proto_udp.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
proto_uxdg.c MINOR: protocols: add a new protocol type selector 2021-10-27 17:05:36 +02:00
proto_uxst.c BUILD: tree-wide: avoid warnings caused by redundant checks of obj_types 2021-12-06 09:11:47 +01:00
protocol.c MINOR: protocols: make use of the protocol type to select the protocol 2021-10-27 17:31:20 +02:00
proxy.c MINOR: proxy: add option idle-close-on-response 2022-01-06 09:09:51 +01:00
qpack-dec.c MINOR: qpack: Missing check for truncated QPACK fields 2021-12-17 08:38:43 +01:00
qpack-enc.c MINOR: h3/qpack: fix gcc11 warnings 2021-11-08 08:59:30 +01:00
qpack-tbl.c MINOR: qpack: fix wrong comment 2021-09-23 15:27:25 +02:00
queue.c BUG/MEDIUM: backend: fix possible sockaddr leak on redispatch 2021-12-24 11:50:01 +01:00
quic_cc_newreno.c MINOR: quic: Wrong traces after rework 2022-01-04 17:30:00 +01:00
quic_cc.c
quic_frame.c MINOR: quic: Wrong traces after rework 2022-01-04 17:30:00 +01:00
quic_sock.c MINOR: quic: set listener accept cb on parsing 2022-01-24 10:30:49 +01:00
quic_tls.c MINOR: quic: implement Retry TLS AEAD tag generation 2022-01-12 11:08:48 +01:00
raw_sock.c CLEANUP: tree-wide: remove unneeded include time.h in ~20 files 2021-10-07 01:41:14 +02:00
regex.c
resolvers.c BUG/MINOR: resolvers: Don't overwrite the error for invalid query domain name 2021-12-02 10:05:04 +01:00
ring.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
sample.c BUG/MEDIUM: sample: Fix memory leak in sample_conv_jwt_member_query 2021-12-03 09:03:55 +01:00
server_state.c MINOR: proxy: Introduce proxy flags to replace disabled bitfield 2021-10-15 14:12:19 +02:00
server.c BUG/MEDIUM: server: avoid changing healthcheck ctx with set server ssl 2022-01-18 12:05:17 +01:00
session.c MINOR: session: Rely on client source address at session level to log error 2021-10-27 11:34:21 +02:00
sha1.c
shctx.c MINOR: shctx: add a few BUG_ON() for consistency checks 2021-11-19 19:25:13 +01:00
signal.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
sink.c MINOR: stream: Use backend stream-interface dst address instead of target_addr 2021-10-27 11:35:59 +02:00
slz.c IMPORT: slz: use the correct CRC32 instruction when running in 32-bit mode 2021-12-06 09:14:20 +01:00
sock_inet.c MEDIUM: listeners: split the thread mask between receiver and bind_conf 2021-10-14 21:27:48 +02:00
sock_unix.c MEDIUM: listeners: split the thread mask between receiver and bind_conf 2021-10-14 21:27:48 +02:00
sock.c MEDIUM: mworker: seamless reload use the internal sockpairs 2021-11-24 19:00:39 +01:00
ssl_ckch.c BUG/MINOR: ssl: free correctly the sni in the backend SSL cache 2021-11-23 15:20:59 +01:00
ssl_crtlist.c MEDIUM: ssl: Chain ckch instances in ca-file entries 2021-05-17 10:50:24 +02:00
ssl_sample.c BUG/MINOR: ssl: Store client SNI in SSL context in case of ClientHello error 2022-01-10 16:31:22 +01:00
ssl_sock.c MINOR: ssl: fix build in release mode 2022-01-24 11:15:48 +01:00
ssl_utils.c MINOR: sample: Expose SSL captures using new fetchers 2021-08-26 19:48:34 +02:00
stats.c MINOR: promex: backend aggregated server check status 2021-11-09 10:51:08 +01:00
stick_table.c BUG/MINOR: stick-table/cli: Check for invalid ipv6 key 2021-11-15 09:17:27 +01:00
stream_interface.c BUILD: tree-wide: avoid warnings caused by redundant checks of obj_types 2021-12-06 09:11:47 +01:00
stream.c BUG/MINOR: stream: make the call_rate only count the no-progress calls 2022-01-20 18:56:57 +01:00
task.c BUG/MINOR: task: do not set TASK_F_USR1 for no reason 2021-10-21 16:17:29 +02:00
tcp_act.c MINOR: tcp-act: Add set-src/set-src-port for "tcp-request content" rules 2021-10-27 11:35:59 +02:00
tcp_rules.c MEDIUM: tcp-rules: Eval TCP rules defined in defaults sections 2021-10-15 14:12:19 +02:00
tcp_sample.c MINOR: tcp-sample: Add samples to get original info about client connection 2021-10-27 11:35:59 +02:00
tcpcheck.c CLEANUP: Apply ist.cocci 2021-11-08 12:08:26 +01:00
thread.c MINOR: threads: add a new function to resolve config groups and masks 2021-10-08 17:22:26 +02:00
time.c REORG: time: move time-keeping code and variables to clock.c 2021-10-08 17:22:26 +02:00
tools.c BUILD/MINOR: tools: solaris build fix on dladdr. 2022-01-03 14:43:51 +01:00
trace.c MINOR: trace: add quic_conn argument definition 2021-12-21 15:53:19 +01:00
uri_auth.c
uri_normalizer.c MINOR: uri_normalizer: Add fragment-encode normalizer 2021-05-11 17:24:32 +02:00
vars.c CLEANUP: assorted typo fixes in the code and comments This is 29th iteration of typo fixes 2022-01-03 14:40:58 +01:00
version.c
wdt.c REORG: thread/sched: move the thread_info flags to the thread_ctx 2021-10-08 17:22:26 +02:00
xprt_handshake.c MEDIUM: connections: Implement a start() method for xprt_handshake. 2021-03-19 15:33:04 +01:00
xprt_quic.c MINOR: quic: initialize ssl_sock_ctx alongside the quic_conn 2022-01-24 10:30:49 +01:00