mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-11 05:48:41 +00:00
BUG/MEDIUM: applet: Report an error if applet request more room on aborted SC
If an abort was performed and the applet still request more room, it means the applet has not properly handle the error on its own. At least the CLI applet is concerned. Instead of reviewing all applets, the error is now handled in task_run_applet() function. Because of this bug, a session may be blocked infinitly and may also lead to a wakup loop. This patch must only be backported to 2.8 for now. And only to lower versions if a bug is reported because it is a bit sensitive and the code older versions are very different.
This commit is contained in:
parent
34645a6365
commit
d18657ae11
@ -465,7 +465,10 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state)
|
||||
if (sc_ic(sc)->flags & CF_READ_EVENT)
|
||||
sc_ep_report_read_activity(sc);
|
||||
|
||||
if (channel_is_empty(sc_oc(sc)))
|
||||
if (sc_waiting_room(sc) && (sc->flags & SC_FL_ABRT_DONE)) {
|
||||
sc_ep_set(sc, SE_FL_EOS|SE_FL_ERROR);
|
||||
}
|
||||
else if (channel_is_empty(sc_oc(sc)))
|
||||
sc_ep_report_send_activity(sc);
|
||||
else {
|
||||
sc_ep_report_blocked_send(sc);
|
||||
|
Loading…
Reference in New Issue
Block a user