haproxy/src
Willy Tarreau c477b6fcc9 BUG/MEDIUM: threads: unbreak "bind" referencing an incorrect thread number
The "process" directive on "bind" lines supports process references and
thread references. No check is performed on the thread number validity,
so that if a listener is only bound to non-existent threads, the traffic
will never be processed. It easily happens when setting one bind line per
thread with an incorrect (or reduced) thread count. No warning appears
and some random connections are never served. It also happens when setting
thread references with threads support disabled at build time.

This patch makes use of the all_threads_mask variable to detect if some
referenced threads don't exist, to emit a warning and fix this.

This patch needs to be backported to 1.8, just like the previous one which
it depends on (MINOR: threads: move "nbthread" parsing to hathreads.c).
2018-07-30 11:10:46 +02:00
..
51d.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
acl.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
action.c MINOR: action: Add function to check rules using an action ACT_ACTION_TRK_* 2017-10-31 11:36:12 +01:00
applet.c MAJOR: applets: Use tasks, instead of rolling our own scheduler. 2018-05-26 20:03:30 +02:00
arg.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
auth.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
backend.c BUG/MINOR: build: Fix compilation with debug mode enabled 2018-07-20 10:45:20 +02:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffer.c MAJOR: buffer: finalize buffer detachment 2018-07-19 16:23:43 +02:00
cache.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
cfgparse.c BUG/MEDIUM: threads: unbreak "bind" referencing an incorrect thread number 2018-07-30 11:10:46 +02:00
channel.c MAJOR: buffer: finalize buffer detachment 2018-07-19 16:23:43 +02:00
checks.c MEDIUM: conn_stream: add cs_recv() as a default rcv_buf() function 2018-07-20 19:21:43 +02:00
chunk.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
cli.c MINOR: pollers: Add a way to wake a thread sleeping in the poller. 2018-07-26 19:09:50 +02:00
compression.c MAJOR: buffer: finalize buffer detachment 2018-07-19 16:23:43 +02:00
connection.c MEDIUM: conn_stream: add cs_recv() as a default rcv_buf() function 2018-07-20 19:21:43 +02:00
da.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
dns.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
ev_epoll.c MINOR: pollers: move polled_mask outside of struct fdtab. 2018-05-06 06:27:34 +02:00
ev_kqueue.c BUG/MEDIUM: pollers/kqueue: use incremented position in event list 2018-05-11 14:08:56 +02:00
ev_poll.c MINOR: pollers: move polled_mask outside of struct fdtab. 2018-05-06 06:27:34 +02:00
ev_select.c MINOR: pollers: move polled_mask outside of struct fdtab. 2018-05-06 06:27:34 +02:00
fd.c MINOR: pollers: Add a way to wake a thread sleeping in the poller. 2018-07-26 19:09:50 +02:00
filters.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
flt_http_comp.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
flt_spoe.c BUG/MINOR: build: Fix compilation with debug mode enabled 2018-07-20 10:45:20 +02:00
flt_trace.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
freq_ctr.c BUG/MAJOR: threads/freq_ctr: use a memory barrier to detect changes 2017-10-31 18:01:18 +01:00
frontend.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
h1.c MAJOR: buffer: finalize buffer detachment 2018-07-19 16:23:43 +02:00
h2.c BUG/MEDIUM: h2: implement missing support for chunked encoded uploads 2018-04-26 10:20:44 +02:00
haproxy.c MINOR: threads: move "nbthread" parsing to hathreads.c 2018-07-30 11:10:46 +02:00
hash.c MINOR: hash: add new function hash_crc32c 2018-03-21 05:04:01 +01:00
hathreads.c MINOR: threads: move "nbthread" parsing to hathreads.c 2018-07-30 11:10:46 +02:00
hdr_idx.c CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
hlua.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
hlua_fcn.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
hpack-dec.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
hpack-enc.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
hpack-huff.c BUG/MINOR: hpack: must reject huffman literals padded with more than 7 bits 2017-12-03 21:08:39 +01:00
hpack-tbl.c BUG/MINOR: hpack: fix harmless use of uninitialized value in hpack_dht_insert 2018-03-27 20:05:13 +02:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c BUILD: threads: Rename SPIN/RWLOCK macros using HA_ prefix 2017-11-07 11:10:24 +01:00
lb_fas.c BUILD: threads: Rename SPIN/RWLOCK macros using HA_ prefix 2017-11-07 11:10:24 +01:00
lb_fwlc.c BUILD: threads: Rename SPIN/RWLOCK macros using HA_ prefix 2017-11-07 11:10:24 +01:00
lb_fwrr.c BUILD: threads: Rename SPIN/RWLOCK macros using HA_ prefix 2017-11-07 11:10:24 +01:00
lb_map.c BUG: MAJOR: lb_map: server map calculation broken 2017-12-14 17:36:39 +01:00
listener.c BUG/MINOR: listener: Don't decrease actconn twice when a new session is rejected 2018-03-23 16:21:50 +01:00
log.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c MEDIUM: Add parsing of mailers section 2015-02-03 00:24:16 +01:00
map.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
memory.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
mux_h2.c BUG/MEDIUM: h2: prevent orphaned streams from blocking a connection forever 2018-07-27 09:55:14 +02:00
mux_pt.c MEDIUM: connections/mux: Revamp the send direction. 2018-07-19 18:31:07 +02:00
namespace.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
pattern.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
payload.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
peers.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
pipe.c CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
proto_http.c MEDIUM: queue: make pendconn_free() work on the stream instead 2018-07-26 17:32:51 +02:00
proto_tcp.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
proto_udp.c CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
proto_uxst.c BUG/MINOR: unix: Make sure we can transfer abns sockets on seamless reload. 2018-06-07 14:33:44 +02:00
protocol.c BUILD: protocol: fix some build errors on OpenBSD 2016-08-10 19:31:58 +02:00
proxy.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
queue.c MINOR: threads/queue: Get rid of THREAD_WANT_SYNC in the queue code. 2018-07-26 20:55:02 +02:00
raw_sock.c MINOR: connections/mux: Add a new "subscribe" method. 2018-07-19 16:23:43 +02:00
regex.c CLEANUP: log: Rename Alert/Warning in ha_alert/ha_warning 2017-11-24 17:19:12 +01:00
sample.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
server.c BUG/MINOR: servers: Don't make "server" in a frontend fatal. 2018-07-24 17:13:54 +02:00
session.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
sha1.c IMPORT: sha1: import SHA1 functions 2017-10-25 04:45:48 +02:00
shctx.c BUILD: shctx: do not depend on openssl anymore 2017-11-08 14:33:36 +01:00
signal.c MINOR: signal: don't pass the signal number anymore as the wakeup reason 2018-07-26 16:12:48 +02:00
ssl_sock.c MINOR: connections/mux: Add a new "subscribe" method. 2018-07-19 16:23:43 +02:00
standard.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
stats.c BUG/MEDIUM: stats: don't ask for more data as long as we're responding 2018-07-24 17:13:32 +02:00
stick_table.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
stream.c MEDIUM: queue: make pendconn_free() work on the stream instead 2018-07-26 17:32:51 +02:00
stream_interface.c BUG/MEDIUM: stream-int: don't immediately enable reading when the buffer was reportedly full 2018-07-24 17:12:38 +02:00
task.c BUILD/MINOR: threads: unbreak build with threads disabled 2018-07-27 17:18:22 +02:00
tcp_rules.c BUG/MINOR: build: Fix compilation with debug mode enabled 2018-07-20 10:45:20 +02:00
time.c BUG/MINOR: time/threads: ensure the adjusted time is always correct 2018-02-05 20:11:38 +01:00
trace.c CONTRIB: trace: try to display the function's return value on exit 2017-10-24 19:54:25 +02:00
uri_auth.c CLEANUP: log: Rename Alert/Warning in ha_alert/ha_warning 2017-11-24 17:19:12 +01:00
vars.c MEDIUM: chunks: make the chunk struct's fields match the buffer struct 2018-07-19 16:23:43 +02:00
wurfl.c MAJOR: chunks: replace struct chunk with struct buffer 2018-07-19 16:23:43 +02:00
xxhash.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00