[tor-commits] [tor/master] hs-v3: Rate limit some log statements

nickm at torproject.org nickm at torproject.org
Tue Sep 12 15:20:33 UTC 2017


commit 98953b1fc29a693aa797989402f7205523448408
Author: David Goulet <dgoulet at torproject.org>
Date:   Tue Sep 12 11:02:40 2017 -0400

    hs-v3: Rate limit some log statements
    
    Also fix an indentation issue.
    
    Closes #23480
    
    Signed-off-by: David Goulet <dgoulet at torproject.org>
---
 src/or/hs_service.c | 10 ++++++++--
 src/or/nodelist.c   |  6 ++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index 5759aa812..a8883e03a 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -2978,8 +2978,14 @@ hs_service_lists_fnames_for_sandbox(smartlist_t *file_list,
 void
 hs_service_dir_info_changed(void)
 {
-  log_info(LD_REND, "New dirinfo arrived: consider reuploading descriptor");
-  consider_republishing_hs_descriptors = 1;
+  if (hs_service_get_num_services() > 0) {
+    /* New directory information usually goes every consensus so rate limit
+     * every 30 minutes to not be too conservative. */
+    static struct ratelim_t dir_info_changed_ratelim = RATELIM_INIT(30 * 60);
+    log_fn_ratelim(&dir_info_changed_ratelim, LOG_INFO, LD_REND,
+                   "New dirinfo arrived: consider reuploading descriptor");
+    consider_republishing_hs_descriptors = 1;
+  }
 }
 
 /* Called when we get an INTRODUCE2 cell on the circ. Respond to the cell and
diff --git a/src/or/nodelist.c b/src/or/nodelist.c
index 01a0e9e85..df735a9d2 100644
--- a/src/or/nodelist.c
+++ b/src/or/nodelist.c
@@ -300,14 +300,16 @@ node_set_hsdir_index(node_t *node, const networkstatus_t *ns)
   tor_assert(ns);
 
   if (!networkstatus_is_live(ns, now)) {
-    log_info(LD_GENERAL, "Not setting hsdir index with a non-live consensus.");
+    static struct ratelim_t live_consensus_ratelim = RATELIM_INIT(30 * 60);
+    log_fn_ratelim(&live_consensus_ratelim, LOG_INFO, LD_GENERAL,
+                   "Not setting hsdir index with a non-live consensus.");
     goto done;
   }
 
   node_identity_pk = node_get_ed25519_id(node);
   if (node_identity_pk == NULL) {
     log_debug(LD_GENERAL, "ed25519 identity public key not found when "
-              "trying to build the hsdir indexes for node %s",
+                          "trying to build the hsdir indexes for node %s",
               node_describe(node));
     goto done;
   }





More information about the tor-commits mailing list