Opened 13 years ago

Last modified 8 years ago

#532 closed defect (Not a bug)

Do we use non-Running routers in scary places?

Reported by: arma Owned by:
Priority: Low Milestone: 0.2.1.x-final
Component: Core Tor/Tor Version:
Severity: Keywords:
Cc: arma, nickm Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


Bringing this over from bug 529:

If we clear the flags for a given router yet don't delete the routerstatus
entry when we get a new consensus that doesn't list that router, is that
sufficient to make the client not use that router?

For example, we ignore Running when posting to dir authorities.

For example, we might ignore Running when the client specifically asks for
a server, e.g. with the .exit notation.

(The original discussion also discussed the Valid flag, and wanted to make it
so you needed a Valid flag before you'd get used, on the theory that there
might be bugs with looking at the Running flag. But I think that's just
turtles all the way down. If there are bugs, we should fix them, not require
a second flag that might also have bugs.)

[Automatically added by flyspray2trac: Operating System: All]

Child Tickets

Change History (8)

comment:1 Changed 13 years ago by nickm

In the original thread, weasel wanted "look at valid before running."

I wanted "look at listed before valid OR running."

comment:2 Changed 13 years ago by arma

Confirmed: I believe we do ignore Running when obeying .exit requests.

In circuit_get_open_circ_or_launch(), see the

if (desired_circuit_purpose == CIRCUIT_PURPOSE_C_GENERAL) {

if (conn->chosen_exit_name) {


router_get_by_nickname() appears to return an answer without regard
for flags.

Also, router_choose_random_node() appears to ignore Running flags for its
first argument (the "preferred" list), which only appears to affect
choice of rendnode and intronode -- and only if you ask for specific ones.

comment:3 Changed 13 years ago by arma

One option would be a new flag, Listed, which we would fastidiously check in all
cases except the ones we forget.

What are some other options? :)

comment:4 Changed 13 years ago by nickm

I'm confused. The only routerstatus entries we should be looking at to build circuits are the ones in
the consensus. Are we really talking about using routerinfo_t objects that aren't listed in the consensus?

comment:5 Changed 12 years ago by nickm

I think this bug may be moot now that consensuses don't even include non-running routers.

comment:6 Changed 12 years ago by arma

I think you're right. Closing it.

comment:7 Changed 12 years ago by arma

flyspray2trac: bug closed.
Mooted by taking non-running relays out of the consensus

comment:8 Changed 8 years ago by nickm

Component: Tor ClientTor
Note: See TracTickets for help on using tickets.