From 3146a4cde2cff2d28f63402037b284946e75fa03 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 26 Jul 2016 15:22:33 +0200 Subject: [PATCH] BUG/MINOR: peers: don't count track-sc multiple times on errors Ruoshan Huang found that the call to session_inc_http_err_ctr() in the recent http-response patch was not a good idea because it also increments counters that are already tracked (eg: http-request track-sc or previous http-response track-sc). Better open-code the update, it's simple. --- src/proto_http.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/proto_http.c b/src/proto_http.c index d2090bb..3e18a6c 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -3816,8 +3816,16 @@ resume_execution: * but here we're tracking after this ought to have been done so we have * to do it on purpose. */ - if ((unsigned)(txn->status - 400) < 100) - stream_inc_http_err_ctr(s); + if ((unsigned)(txn->status - 400) < 100) { + ptr = stktable_data_ptr(t, ts, STKTABLE_DT_HTTP_ERR_CNT); + if (ptr) + stktable_data_cast(ptr, http_err_cnt)++; + + ptr = stktable_data_ptr(t, ts, STKTABLE_DT_HTTP_ERR_RATE); + if (ptr) + update_freq_ctr_period(&stktable_data_cast(ptr, http_err_rate), + t->data_arg[STKTABLE_DT_HTTP_ERR_RATE].u, 1); + } } } break; -- 1.7.10.4