mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
BUG/MEDIUM: http-client: Eat output data when waiting for appctx shutdown
When the http-client applet is executed while a shut is pending, the remaining output data must always be consumed. Otherwise, this can prevent the stream to exit, leading to a spinning loop on the applet. It is 2.8-specific. No backport needed.
This commit is contained in:
parent
1fb97e47f0
commit
1901c1bf5a
@ -700,9 +700,14 @@ static void httpclient_applet_io_handler(struct appctx *appctx)
|
||||
uint32_t sz;
|
||||
int ret;
|
||||
|
||||
if (unlikely(se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR|SE_FL_SHR|SE_FL_SHW))))
|
||||
if (unlikely(se_fl_test(appctx->sedesc, (SE_FL_EOS|SE_FL_ERROR|SE_FL_SHR|SE_FL_SHW)))) {
|
||||
if (co_data(res)) {
|
||||
htx = htx_from_buf(&res->buf);
|
||||
co_htx_skip(res, htx, co_data(res));
|
||||
htx_to_buf(htx, &res->buf);
|
||||
}
|
||||
goto out;
|
||||
|
||||
}
|
||||
/* The IO handler could be called after the release, so we need to
|
||||
* check if hc is still there to run the IO handler */
|
||||
if (!hc)
|
||||
|
Loading…
x
Reference in New Issue
Block a user