From: Willy Tarreau Date: Tue, 26 Jul 2016 13:22:33 +0000 (+0200) Subject: BUG/MINOR: peers: don't count track-sc multiple times on errors X-Git-Tag: v1.7-dev4~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3146a4cde2cff2d28f63402037b284946e75fa03;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/proto_http.c b/src/proto_http.c index d2090bbbcf..3e18a6c84f 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;