[tor-commits] [tor] branch main updated: resolve a BUG() on relays at startup

gitolite role git at cupani.torproject.org
Fri Oct 28 16:09:50 UTC 2022


This is an automated email from the git hooks/post-receive script.

dgoulet pushed a commit to branch main
in repository tor.

The following commit(s) were added to refs/heads/main by this push:
     new 338185d840 resolve a BUG() on relays at startup
     new 19b080f2aa Merge branch 'tor-gitlab/mr/646'
338185d840 is described below

commit 338185d8406a927c95c5c3c81e7925dbf8149044
Author: Roger Dingledine <arma at torproject.org>
AuthorDate: Thu Oct 27 19:54:31 2022 -0400

    resolve a BUG() on relays at startup
    
    Remove a harmless "Bug" log message that can happen in
    relay_addr_learn_from_dirauth() on relays during startup:
    
    tor_bug_occurred_(): Bug: ../src/feature/relay/relay_find_addr.c:225: relay_addr_learn_from_dirauth: Non-fatal assertion !(!ei) failed. (on Tor 0.4.7.10 )
    Bug: Tor 0.4.7.10: Non-fatal assertion !(!ei) failed in relay_addr_learn_from_dirauth at ../src/feature/relay/relay_find_addr.c:225. Stack trace: (on Tor 0.4.7.10 )
    
    Finishes fixing bug 40231.
    
    Fixes bug 40523; bugfix on 0.4.5.4-rc.
---
 changes/bug40523                    |  4 ++++
 src/feature/relay/relay_find_addr.c | 16 +++++++++-------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/changes/bug40523 b/changes/bug40523
new file mode 100644
index 0000000000..880fc469fd
--- /dev/null
+++ b/changes/bug40523
@@ -0,0 +1,4 @@
+  o Minor bugfixes (relay):
+    - Remove a harmless "Bug" log message that can happen in
+      relay_addr_learn_from_dirauth() on relays during startup. Finishes
+      fixing bug 40231. Fixes bug 40523; bugfix on 0.4.5.4-rc.
diff --git a/src/feature/relay/relay_find_addr.c b/src/feature/relay/relay_find_addr.c
index f4f9d40823..5a32283a7b 100644
--- a/src/feature/relay/relay_find_addr.c
+++ b/src/feature/relay/relay_find_addr.c
@@ -212,17 +212,19 @@ relay_addr_learn_from_dirauth(void)
       return;
     }
     const node_t *node = node_get_by_id(rs->identity_digest);
-    if (!node) {
+    extend_info_t *ei = NULL;
+    if (node) {
+      ei = extend_info_from_node(node, 1, false);
+    }
+    if (!node || !ei) {
       /* This can happen if we are still in the early starting stage where no
        * descriptors we actually fetched and thus we have the routerstatus_t
        * for the authority but not its descriptor which is needed to build a
        * circuit and thus learn our address. */
-      log_info(LD_GENERAL, "Can't build a circuit to an authority. Unable to "
-                           "learn for now our address from them.");
-      return;
-    }
-    extend_info_t *ei = extend_info_from_node(node, 1, false);
-    if (BUG(!ei)) {
+      log_info(LD_GENERAL,
+               "Trying to learn our IP address by connecting to an "
+               "authority, but can't build a circuit to one yet. Will try "
+               "again soon.");
       return;
     }
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tor-commits mailing list