]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MAJOR: stream_interface: fix occasional data transfer freezes
authorWilly Tarreau <w@1wt.eu>
Wed, 19 Dec 2012 16:34:17 +0000 (17:34 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 19 Dec 2012 18:20:24 +0000 (19:20 +0100)
commit66572768712e014045dc5029da2facc1e12f73f0
treef759a83f69eafff2f900e782e7a8e4a464b7219c
parent5fb3803f4bf79f735fa92190e94d8e681450b0da
BUG/MAJOR: stream_interface: fix occasional data transfer freezes

Since the changes in connection management, it became necessary to re-enable
polling after a fast-forward transfer would complete.

One such issue was addressed after dev12 by commit 9f7c6a18 (BUG/MAJOR:
stream_interface: certain workloads could cause get stuck) but unfortunately,
it was incomplete as very subtle cases would occasionally remain unaddressed
when a buffer was marked with the NOEXP flag, which is used during POST
uploads. The wake up must be performed even when the flag is there, the
flag is used only to refresh the timeout.

Too many conditions need to be hit together for the situation to be
reproducible, but it systematically appears for some users.

It is particularly important to credit Sander Klein and John Rood from
Picturae ICT ( http://picturae.com/ ) for reporting this bug on the mailing
list, providing configs and countless traces showing the bug in action, and
for their patience testing litteraly tens of snapshots and versions of
supposed fixes during a full week to narrow the commit range until the bug
was really knocked down! As a side effect of their numerous tests, several
other bugs were fixed.
src/stream_interface.c