]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Minor debugging improvements
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 10 Sep 2022 13:57:18 +0000 (14:57 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Sat, 10 Sep 2022 13:57:18 +0000 (14:57 +0100)
src/libserver/symcache/symcache_impl.cxx
src/plugins/lua/url_redirector.lua

index 451222f2ff05855d1dfb31a6acc80f1f6d934d75..7b1127a7ac349664389ad6b5daa92b57a780bcaa 100644 (file)
@@ -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) {
index bc054ec69ffa3ae6cf9a30514ed924a1f2b39488..641d8de6603520b0d92e4a369e795a4a9a1d7838 100644 (file)
@@ -356,6 +356,7 @@ if opts then
       local id = rspamd_config:register_symbol{
         name = 'URL_REDIRECTOR_CHECK',
         type = 'callback,prefilter',
+        priority = lua_util.symbols_priorities.medium,
         callback = url_redirector_handler,
         -- In fact, the real timeout is nested_limit * timeout...
         augmentations = {string.format("timeout=%f", settings.timeout)}