haproxy/src
Willy Tarreau 269ab318ef BUG/MEDIUM: workaround an eglibc bug which truncates the pidfiles when nbproc > 1
Thomas Heil reported that when using nbproc > 1, his pidfiles were
regularly truncated. The issue could be tracked down to the presence
of a call to lseek(pidfile, 0, SEEK_SET) just before the close() call
in the children, resulting in the file being truncated by the children
while the parent was feeding it. This unexpected lseek() is transparently
performed by fclose().

Since there is no way to have the file automatically closed during the
fork, the only solution is to bypass the libc and use open/write/close
instead of fprintf() and fclose().

The issue was observed on eglibc 2.15.
2012-09-05 15:04:20 +02:00
..
acl.c REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
appsession.c CLEANUP: remove a few warning about unchecked return values in debug code 2012-04-30 11:56:30 +02:00
arg.c BUG/MEDIUM: ensure that unresolved arguments are freed exactly once 2012-06-01 10:40:52 +02:00
auth.c CLEANUP: auth: make the code build again with DEBUG_AUTH 2012-05-10 23:25:35 +02:00
backend.c MEDIUM: proto_tcp: remove any dependence on stream_interface 2012-09-03 20:47:34 +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 REORG: channel: move buffer_{replace,insert_line}* to buffer.{c,h} 2012-09-03 20:47:33 +02:00
cfgparse.c MEDIUM: ssl: add support for prefer-server-ciphers option 2012-09-04 15:35:32 +02:00
channel.c CLEANUP: channel: use "channel" instead of "buffer" in function names 2012-09-03 20:47:33 +02:00
checks.c CLEANUP: fd: remove fdtab->flags 2012-09-03 20:49:14 +02:00
chunk.c REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
connection.c MEDIUM: ssl: add new files ssl_sock.[ch] to provide the SSL data layer 2012-09-03 20:49:14 +02:00
cttproxy.c [BUG] cttproxy: socket fd leakage in check_cttproxy_version 2010-05-09 21:19:08 +02:00
dumpstats.c MAJOR: connection: move the addr field from the stream_interface 2012-09-03 20:47:34 +02:00
ev_epoll.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_kqueue.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_poll.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_select.c MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
ev_sepoll.c CLEANUP: fdtab: flatten the struct and merge the spec struct with the rest 2012-09-03 20:49:14 +02:00
fd.c MAJOR: fd: replace all EV_FD_* macros with new fd_*_* inline calls 2012-09-02 21:53:11 +02:00
freq_ctr.c [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.c CLEANUP: fd: remove fdtab->flags 2012-09-03 20:49:14 +02:00
haproxy.c BUG/MEDIUM: workaround an eglibc bug which truncates the pidfiles when nbproc > 1 2012-09-05 15:04:20 +02:00
hdr_idx.c OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
i386-linux-vsys.c OPTIM: i386: make use of kernel-mode-linux when available 2012-07-31 07:53:42 +02:00
lb_chash.c [MEDIUM] hash: add support for an 'avalanche' hash-type 2010-11-29 07:28:16 +01:00
lb_fas.c CLEANUP: lb_first: add reference to a paper describing the original idea 2012-04-07 09:08:45 +02:00
lb_fwlc.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.c [BUG] url_param hash may return a down server 2010-03-12 06:22:16 +01:00
log.c MAJOR: connection: move the addr field from the stream_interface 2012-09-03 20:47:34 +02:00
memory.c MEDIUM: memory: add the ability to poison memory at run time 2012-05-08 21:28:16 +02:00
peers.c MAJOR: connection: move the addr field from the stream_interface 2012-09-03 20:47:34 +02:00
pipe.c BUILD/MINOR: silent a build warning in src/pipe.c (fcntl) 2011-10-24 17:09:22 +02:00
proto_http.c BUILD: http: rename error_message http_error_message to fix conflicts on RHEL 2012-09-04 12:19:04 +02:00
proto_tcp.c CLEANUP: includes: fix includes for a number of users of fd.h 2012-09-03 20:49:14 +02:00
proto_uxst.c REORG: sock_raw: rename the files raw_sock* 2012-09-02 21:54:56 +02:00
protocols.c MAJOR: make use of conn_{data|sock}_{poll|stop|want}* in connection handlers 2012-09-02 21:53:12 +02:00
proxy.c CLEANUP: channel: usr CF_/CHN_ prefixes instead of BF_/BUF_ 2012-09-03 20:47:33 +02:00
queue.c BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend 2012-01-20 16:18:53 +01:00
raw_sock.c MEDIUM: connection: complete the polling cleanups 2012-09-03 20:47:35 +02:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
sample.c CLEANUP: includes: fix includes for a number of users of fd.h 2012-09-03 20:49:14 +02:00
server.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
session.c BUILD: http: rename error_message http_error_message to fix conflicts on RHEL 2012-09-04 12:19:04 +02:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c BUILD: ssl: use MAP_ANON instead of MAP_ANONYMOUS 2012-09-04 15:45:21 +02:00
signal.c [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
ssl_sock.c BUG: ssl: mark the connection as waiting for an SSL connection during the handshake 2012-09-04 08:03:39 +02:00
standard.c CLEANUP: includes: fix includes for a number of users of fd.h 2012-09-03 20:49:14 +02:00
stick_table.c REORG: rename "pattern" files 2012-05-08 20:57:21 +02:00
stream_interface.c MAJOR: stream_interface: continue to update data polling flags during handshakes 2012-09-03 20:49:13 +02:00
task.c [OPTIM] task: don't scan the run queue if we know it's empty 2011-09-10 20:08:49 +02:00
time.c MINOR: Date and time fonctions that don't use snprintf 2012-02-09 17:03:28 +01:00
trace.c MINOR: add a new function call tracer for debugging purposes 2012-05-26 00:12:37 +02:00
uri_auth.c [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00