Browse Source

Change a silent ignore-the-bug in microdesc.c to a LOG_INFO

I don't believe this bug occurs, but there was an XXX023 to make
sure it doesn't.
Nick Mathewson 12 years ago
parent
commit
32bf258881
2 changed files with 10 additions and 2 deletions
  1. 3 0
      changes/log_bad_md_entry
  2. 7 2
      src/or/microdesc.c

+ 3 - 0
changes/log_bad_md_entry

@@ -0,0 +1,3 @@
+  o Minor features (debugging):
+    - Log a BUG message at INFO if we have a networkstatus with a missing
+      entry for some microdescriptor.

+ 7 - 2
src/or/microdesc.c

@@ -643,8 +643,13 @@ microdesc_list_missing_digest256(networkstatus_t *ns, microdesc_cache_t *cache,
       continue;
     if (skip && digestmap_get(skip, rs->descriptor_digest))
       continue;
-    if (tor_mem_is_zero(rs->descriptor_digest, DIGEST256_LEN))
-      continue; /* This indicates a bug somewhere XXXX023*/
+    if (tor_mem_is_zero(rs->descriptor_digest, DIGEST256_LEN)) {
+      log_info(LD_BUG, "Found an entry in networktatus with no microdescriptor "
+               "digest. (Router %s=%s at %s:%d.)", rs->nickname,
+               hex_str(rs->identity_digest, DIGEST_LEN),
+               fmt_addr32(rs->addr), rs->or_port);
+      continue;
+    }
     /* XXXX Also skip if we're a noncache and wouldn't use this router.
      * XXXX NM Microdesc
      */