From: Krzysztof Oledzki <ole@ans.pl>
Date: Sun, 20 Apr 2008 22:19:09 +0200 (CEST)
Subject: Re: [PATCH]  Flush buffers also where there are exactly 0 bytes left

I'm also attaching a debug patch that helps to trigger this bug.

Without the fix:
# echo -ne "GET /haproxy?stats;csv;norefresh HTTP/1.0\r\n\r\n"|nc 127.0.0.1=
 801|wc -c
16384

With the fix:
# echo -ne "GET /haproxy?stats;csv;norefresh HTTP/1.0\r\n\r\n"|nc 127.0.0.1=
 801|wc -c
33089

Best regards,

diff --git a/src/dumpstats.c b/src/dumpstats.c
index ddadddd..28bbfce 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -593,6 +593,7 @@ int stats_dump_proxy(struct session *s, struct proxy *px, struct uri_auth *uri)
 
 	msg.len = 0;
 	msg.str = trash;
+	int i;
 
 	switch (s->data_ctx.stats.px_st) {
 	case DATA_ST_PX_INIT:
@@ -667,6 +668,13 @@ int stats_dump_proxy(struct session *s, struct proxy *px, struct uri_auth *uri)
 		/* print the frontend */
 		if ((px->cap & PR_CAP_FE) &&
 		    (!(s->data_ctx.stats.flags & STAT_BOUND) || (s->data_ctx.stats.type & (1 << STATS_TYPE_FE)))) {
+
+			if (1) {
+				for (i=0; i<16096; i++)
+					chunk_printf(&msg, trashlen, "*");
+
+				chunk_printf(&msg, trashlen, "\n");
+#if 0
 			if (!(s->data_ctx.stats.flags & STAT_FMT_CSV)) {
				chunk_printf(&msg, trashlen,
 				     /* name, queue */
@@ -694,6 +702,7 @@ int stats_dump_proxy(struct session *s, struct proxy *px, struct uri_auth *uri)
 				     px->failed_req,
 				     px->state == PR_STRUN ? "OPEN" :
 				     px->state == PR_STIDLE ? "FULL" : "STOP");
+#endif
 			} else {
				chunk_printf(&msg, trashlen,
 				     /* pxid, name, queue cur, queue max, */


