From 78bbeb4a994c6a567b567954d608a6a05f942721 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 26 Nov 2012 16:44:48 +0100 Subject: [PATCH] BUG/MAJOR: stats: correctly check for a possible divide error when showing compression ratios Commit 5730c68b changed to display compression ratios based on 2xx responses, but we should then check that there are such responses instead of checking for requests. The risk is a divide error if there are some requests but no 2xx yet (eg: redirect). --- src/dumpstats.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dumpstats.c b/src/dumpstats.c index 7cc5911aa..f2849efce 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -2477,7 +2477,7 @@ static int stats_dump_proxy(struct stream_interface *si, struct proxy *px, struc chunk_appendf(&trash, " other=%lld,", px->fe_counters.p.http.rsp[0]); chunk_appendf(&trash, " compressed=%lld (%d%%)", px->fe_counters.p.http.comp_rsp, - px->fe_counters.p.http.cum_req ? + px->fe_counters.p.http.rsp[2] ? (int)(100*px->fe_counters.p.http.comp_rsp/px->fe_counters.p.http.rsp[2]) : 0); chunk_appendf(&trash, " intercepted=%lld\"", px->fe_counters.intercepted_req); } @@ -3218,7 +3218,7 @@ static int stats_dump_proxy(struct stream_interface *si, struct proxy *px, struc chunk_appendf(&trash, " other=%lld ", px->be_counters.p.http.rsp[0]); chunk_appendf(&trash, " compressed=%lld (%d%%)\"", px->be_counters.p.http.comp_rsp, - px->be_counters.p.http.cum_req ? + px->be_counters.p.http.rsp[2] ? (int)(100*px->be_counters.p.http.comp_rsp/px->be_counters.p.http.rsp[2]) : 0); }