mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-05 14:47:07 +02:00
BUG/MEDIUM: hlua: Report to SC when output data are blocked on a lua socket
It is a fix similar to the previous one ("BUG/MEDIUM: hlua: Report to SC when data were consumed on a lua socket"), but for the write side. The writer must notify the cosocket it needs more space in the request buffer to produce more data by calling sc_need_room(). Otherwise, there is nothing to prevent to wake the cosocket applet up again and again. This patch must be backported as far as 2.8, and maybe to 2.6 too.
This commit is contained in:
parent
21e45a61d1
commit
7e96ff6b84
@ -3232,6 +3232,7 @@ static int hlua_socket_write_yield(struct lua_State *L,int status, lua_KContext
|
||||
WILL_LJMP(luaL_error(L, "out of memory"));
|
||||
}
|
||||
xref_unlock(&socket->xref, peer);
|
||||
sc_need_room(sc, channel_recv_max(&s->req) + 1);
|
||||
MAY_LJMP(hlua_yieldk(L, 0, 0, hlua_socket_write_yield, TICK_ETERNITY, 0));
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user