]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: fd: HUP is an error only when write is active
authorWilly Tarreau <w@1wt.eu>
Tue, 1 Oct 2019 09:46:40 +0000 (11:46 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 1 Oct 2019 09:52:08 +0000 (11:52 +0200)
commit2aaeee34da7a7e5e05ed72d2e55077cb11911b2c
tree6e52b3701dd6d9853982794d9c4b6abaa0c283bd
parent93e548ea26f9a78a2a626231caf17308db9307cb
BUG/MEDIUM: fd: HUP is an error only when write is active

William reported that since commit 6b3089856f ("MEDIUM: fd: do not use
the FD_POLL_* flags in the pollers anymore") the master's CLI often
fails to access sub-processes. There are two causes to this. One is
that we did report FD_POLL_ERR on an FD as soon as FD_EV_SHUT_W was
seen, which is automatically inherited from POLLHUP. And since we do
not store the current shutdown state of an FD we can't know if the
poller reports a sudden close resulting from an error or just a
byproduct of a previous shutdown(WR) followed by a read0. The current
patch addresses this by only considering this when the FD was active,
since a shutdown FD is not active. The second issue is that *somewhere*
down the chain, channel data are ignored if an error is reported on a
channel. This results in content truncation, but this cause was not
figured yet.

No backport is needed.
include/proto/fd.h