]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Reduce log noise
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 23 Mar 2020 16:13:45 +0000 (16:13 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 23 Mar 2020 16:13:45 +0000 (16:13 +0000)
src/libserver/cfg_utils.c
src/libserver/re_cache.c
src/libserver/re_cache.h
src/libserver/rspamd_control.c
src/libserver/worker_util.c

index 23ad382b024d6e9dc0006e1a71fc9b08d79bea42..7a5da98074bc607a67f7b5d0c71109c5fa7ee49f 100644 (file)
@@ -891,7 +891,8 @@ rspamd_config_post_load (struct rspamd_config *cfg,
 
                /* Try load Hypersan */
                rspamd_re_cache_load_hyperscan (cfg->re_cache,
-                               cfg->hs_cache_dir ? cfg->hs_cache_dir :  RSPAMD_DBDIR "/");
+                               cfg->hs_cache_dir ? cfg->hs_cache_dir :  RSPAMD_DBDIR "/",
+                               true);
        }
 
        if (opts & RSPAMD_CONFIG_INIT_LIBS) {
index 29edbe0f71dc643194138b36a3e24251d459b0b1..6dc13220b900511a910430e21636e28d9a0391af 100644 (file)
@@ -2366,7 +2366,7 @@ rspamd_re_cache_is_valid_hyperscan_file (struct rspamd_re_cache *cache,
 
 enum rspamd_hyperscan_status
 rspamd_re_cache_load_hyperscan (struct rspamd_re_cache *cache,
-               const char *cache_dir)
+               const char *cache_dir, bool try_load)
 {
        g_assert (cache != NULL);
        g_assert (cache_dir != NULL);
@@ -2391,7 +2391,7 @@ rspamd_re_cache_load_hyperscan (struct rspamd_re_cache *cache,
                rspamd_snprintf (path, sizeof (path), "%s%c%s.hs", cache_dir,
                                G_DIR_SEPARATOR, re_class->hash);
 
-               if (rspamd_re_cache_is_valid_hyperscan_file (cache, path, FALSE, FALSE)) {
+               if (rspamd_re_cache_is_valid_hyperscan_file (cache, path, try_load, FALSE)) {
                        msg_debug_re_cache ("load hyperscan database from '%s'",
                                        re_class->hash);
 
@@ -2404,7 +2404,13 @@ rspamd_re_cache_load_hyperscan (struct rspamd_re_cache *cache,
                        map = mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
 
                        if (map == MAP_FAILED) {
-                               msg_err_re_cache ("cannot mmap %s: %s", path, strerror (errno));
+                               if (!try_load) {
+                                       msg_err_re_cache ("cannot mmap %s: %s", path, strerror (errno));
+                               }
+                               else {
+                                       msg_debug_re_cache ("cannot mmap %s: %s", path, strerror (errno));
+                               }
+
                                close (fd);
                                all_valid = FALSE;
                                continue;
@@ -2420,8 +2426,15 @@ rspamd_re_cache_load_hyperscan (struct rspamd_re_cache *cache,
                                                        RSPAMD_HS_MAGIC_LEN + /* header */
                                                        sizeof (cache->plt) > (gsize)st.st_size) {
                                /* Some wrong amount of regexps */
-                               msg_err_re_cache ("bad number of expressions in %s: %d",
-                                               path, n);
+                               if (!try_load) {
+                                       msg_err_re_cache ("bad number of expressions in %s: %d",
+                                                       path, n);
+                               }
+                               else {
+                                       msg_debug_re_cache ("bad number of expressions in %s: %d",
+                                                       path, n);
+                               }
+
                                munmap (map, st.st_size);
                                all_valid = FALSE;
                                continue;
@@ -2457,7 +2470,12 @@ rspamd_re_cache_load_hyperscan (struct rspamd_re_cache *cache,
 
                        if ((ret = hs_deserialize_database (p, end - p, &re_class->hs_db))
                                        != HS_SUCCESS) {
-                               msg_err_re_cache ("bad hs database in %s: %d", path, ret);
+                               if (!try_load) {
+                                       msg_err_re_cache ("bad hs database in %s: %d", path, ret);
+                               }
+                               else {
+                                       msg_debug_re_cache ("bad hs database in %s: %d", path, ret);
+                               }
                                munmap (map, st.st_size);
                                g_free (hs_ids);
                                g_free (hs_flags);
@@ -2501,8 +2519,14 @@ rspamd_re_cache_load_hyperscan (struct rspamd_re_cache *cache,
                        }
                }
                else {
-                       msg_err_re_cache ("invalid hyperscan hash file '%s'",
-                                       path);
+                       if (!try_load) {
+                               msg_err_re_cache ("invalid hyperscan hash file '%s'",
+                                               path);
+                       }
+                       else {
+                               msg_debug_re_cache ("invalid hyperscan hash file '%s'",
+                                               path);
+                       }
                        all_valid = FALSE;
                        continue;
                }
index 79bcaca16d4a2513377e47933e0415ae7d29862b..26ffa1603fa49e3d40e6167f96fe4c2c683455c1 100644 (file)
@@ -185,14 +185,16 @@ gint rspamd_re_cache_compile_hyperscan (struct rspamd_re_cache *cache,
  * Returns TRUE if the specified file is valid hyperscan cache
  */
 gboolean rspamd_re_cache_is_valid_hyperscan_file (struct rspamd_re_cache *cache,
-                                                                                                 const char *path, gboolean silent, gboolean try_load);
+                                                                                                 const char *path,
+                                                                                                 gboolean silent,
+                                                                                                 gboolean try_load);
 
 /**
  * Loads all hyperscan regexps precompiled
  */
 enum rspamd_hyperscan_status rspamd_re_cache_load_hyperscan (
                struct rspamd_re_cache *cache,
-               const char *cache_dir);
+               const char *cache_dir, bool try_load);
 
 /**
  * Registers lua selector in the cache
index 1bb4ac4d6e38e3d634391a347848caa5f60101c9..4b2cfc733b4285cb2c9ed056603d33ae7bca85e4 100644 (file)
@@ -909,7 +909,8 @@ rspamd_srv_handler (EV_P_ ev_io *w, int revents)
                                                cmd.cmd.hs_loaded.forced) {
                                        rspamd_re_cache_load_hyperscan (
                                                        srv->cfg->re_cache,
-                                                       cmd.cmd.hs_loaded.cache_dir);
+                                                       cmd.cmd.hs_loaded.cache_dir,
+                                                       false);
                                }
 
                                /* Broadcast command to all workers */
index 5796b8d7f5376b98702e1ec93bb1913d7c5cbae8..d97190f2ba0e75b3694349b7c5a66a00d10e5517 100644 (file)
@@ -1597,7 +1597,7 @@ rspamd_worker_hyperscan_ready (struct rspamd_main *rspamd_main,
                                (rspamd_re_cache_is_hs_loaded (cache) != RSPAMD_HYPERSCAN_LOADED_FULL) ?
                                "new db" : "forced update");
                rep.reply.hs_loaded.status = rspamd_re_cache_load_hyperscan (
-                               worker->srv->cfg->re_cache, cmd->cmd.hs_loaded.cache_dir);
+                               worker->srv->cfg->re_cache, cmd->cmd.hs_loaded.cache_dir, false);
        }
 
        if (write (fd, &rep, sizeof (rep)) != sizeof (rep)) {