[BUG] http stats: large outputs sometimes got some parts chopped off
Due to a misplaced call to stream_int_retnclose(), the stats output
buffer was erased before each call to produce_content(), resulting
in missing pieces in the stats output if the connection was not
fast enough between haproxy and the client.
diff --git a/src/proto_http.c b/src/proto_http.c
index fd76887..c520969 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -3258,7 +3258,6 @@
else if (s->data_source == DATA_SRC_STATS) {
/* dump server statistics */
int ret;
- stream_int_retnclose(rep->cons, NULL);
ret = stats_dump_http(s, rep, s->be->uri_auth);
if (ret >= 0)
return;
@@ -4633,6 +4632,7 @@
buffer_dont_connect(t->req);
buffer_shutw_now(t->req);
buffer_shutr_now(t->rep);
+ stream_int_retnclose(t->rep->cons, NULL);
t->logs.tv_request = now;
t->data_source = DATA_SRC_STATS;
t->data_state = DATA_ST_INIT;