mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-22 21:56:55 +00:00
BUG/MEDIUM: h1: In h1_init(), wake the tasklet instead of calling h1_recv().
In h1_init(), instead of calling h1_recv() directly, just wake the tasklet, so that the receive will be done later. h1_init() might be called from connect_server(), which is itself called indirectly from process_stream(), and if the receive fails, we may call si_cs_process(), which may destroy the channel buffers while process_stream() still expects them to exist. This should be backported to 1.9.
This commit is contained in:
parent
74b41ba025
commit
9b960a860c
@ -414,8 +414,7 @@ static int h1_init(struct connection *conn, struct proxy *proxy, struct session
|
||||
task_queue(t);
|
||||
|
||||
/* Try to read, if nothing is available yet we'll just subscribe */
|
||||
if (h1_recv(h1c))
|
||||
h1_process(h1c);
|
||||
tasklet_wakeup(h1c->wait_event.task);
|
||||
|
||||
/* mux->wake will be called soon to complete the operation */
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user