From: Willy Tarreau Date: Thu, 24 Sep 2009 20:22:18 +0000 (+0200) Subject: [BUG] http stats: large outputs sometimes got some parts chopped off X-Git-Tag: v1.4-dev4~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f9cc8ab520b5554c1787b3796880c59f8b9ba52;p=thirdparty%2Fhaproxy.git [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 fd768874a7..c5209691bf 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -3258,7 +3258,6 @@ void produce_content(struct session *s, struct buffer *rep) 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 @@ int stats_check_uri_auth(struct session *t, struct proxy *backend) 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;