aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/symcache
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rspamd.com>2022-09-10 14:57:18 +0100
committerVsevolod Stakhov <vsevolod@rspamd.com>2022-09-10 14:57:18 +0100
commit58ce8ea685a757d783ae8a65c2958a48e81f85eb (patch)
treece2b01d206993e3b4e293c66bba6fe2540430444 /src/libserver/symcache
parent05fd471df54b690e74125cf7ba2ff345f3be8bbf (diff)
downloadrspamd-58ce8ea685a757d783ae8a65c2958a48e81f85eb.tar.gz
rspamd-58ce8ea685a757d783ae8a65c2958a48e81f85eb.zip
[Minor] Minor debugging improvements
Diffstat (limited to 'src/libserver/symcache')
-rw-r--r--src/libserver/symcache/symcache_impl.cxx28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/libserver/symcache/symcache_impl.cxx b/src/libserver/symcache/symcache_impl.cxx
index 451222f2f..7b1127a7a 100644
--- a/src/libserver/symcache/symcache_impl.cxx
+++ b/src/libserver/symcache/symcache_impl.cxx
@@ -1221,13 +1221,14 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *>
const cache_item *max_elt = nullptr;
for (const auto &it : vec) {
if (it->priority != saved_priority && max_elt != nullptr && max_timeout > 0) {
- accumulated_timeout += max_timeout;
- added_timeout += max_timeout;
- msg_debug_cache_lambda("added %.2f to the timeout (%.2f) as the priority has changed (%d -> %d);"
- "symbol: %s",
- max_timeout, accumulated_timeout, saved_priority, it->priority,
- it->symbol.c_str());
if (!seen_items.contains(max_elt)) {
+ accumulated_timeout += max_timeout;
+ added_timeout += max_timeout;
+
+ msg_debug_cache_lambda("added %.2f to the timeout (%.2f) as the priority has changed (%d -> %d); "
+ "symbol: %s",
+ max_timeout, accumulated_timeout, saved_priority, it->priority,
+ max_elt->symbol.c_str());
elts.emplace_back(max_timeout, max_elt);
seen_items.insert(max_elt);
}
@@ -1245,9 +1246,14 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *>
}
if (max_elt != nullptr && max_timeout > 0) {
- accumulated_timeout += max_timeout;
- added_timeout += max_timeout;
if (!seen_items.contains(max_elt)) {
+ accumulated_timeout += max_timeout;
+ added_timeout += max_timeout;
+
+ msg_debug_cache_lambda("added %.2f to the timeout (%.2f) end of processing; "
+ "symbol: %s",
+ max_timeout, accumulated_timeout,
+ max_elt->symbol.c_str());
elts.emplace_back(max_timeout, max_elt);
seen_items.insert(max_elt);
}
@@ -1257,8 +1263,6 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *>
};
auto prefilters_timeout = pre_postfilter_iter(this->prefilters);
- auto postfilters_timeout = pre_postfilter_iter(this->postfilters);
- auto idempotent_timeout = pre_postfilter_iter(this->idempotent);
/* For normal filters, we check the maximum chain of the dependencies
* This function might have O(N^2) complexity if all symbols are in a single
@@ -1278,6 +1282,10 @@ auto symcache::get_max_timeout(std::vector<std::pair<double, const cache_item *>
}
accumulated_timeout += max_filters_timeout;
+
+ auto postfilters_timeout = pre_postfilter_iter(this->postfilters);
+ auto idempotent_timeout = pre_postfilter_iter(this->idempotent);
+
/* Sort in decreasing order by timeout */
std::stable_sort(std::begin(elts), std::end(elts),
[](const auto &p1, const auto &p2) {