]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: spoe: Don't forget to decrement fpa when a processing is interrupted
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 23 Mar 2018 10:53:24 +0000 (11:53 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 5 Apr 2018 13:13:53 +0000 (15:13 +0200)
commit879dca9a7625746e6d61310adf3c56578d87372a
tree445bd04174c891b11412d4f7c96d26d20d3e80af
parentb7426d1562720b2bdd6eb4a94a7b536e123ce0f9
BUG/MINOR: spoe: Don't forget to decrement fpa when a processing is interrupted

In async or pipelining mode, we count the number of NOTIFY frames sent waiting
for their corresponding ACK frames. This is a way to evaluate the "load" of a
SPOE applet. For pipelining mode, it is easy to make the link between a NOTIFY
frame and its ACK one, because exchanges are done using the same TCP connection.

For async mode, it is harder because a ACK frame can be received on another
connection than the one sending the NOTIFY frame. So to decrement the fpa of the
right applet, we need to keep it in the SPOE context. Most of time, it works
expect when the processing is interrupted by the stream, because of a timeout.

This patch fixes this issue. If a SPOE applet is still link to a SPOE context
when the processing is interrupted by the stream, the applet's fpa is
decremented. This is only done for unfragmented frames.
src/flt_spoe.c