Opened 5 years ago

Closed 5 years ago

#13839 closed defect (fixed)

Exit Policy says accept *:* but relay doesn't have Exit flag

Reported by: teor Owned by: teor
Priority: Medium Milestone:
Component: Core Tor/Tor Version: Tor: 0.2.6.1-alpha
Severity: Keywords: tor-auth tor-relay
Cc: nickm Actual Points:
Parent ID: #13718 Points:
Reviewer: Sponsor:

Description (last modified by teor)

#13718 has revealed an issue where chutney-run tor authorities don't flag anything as an Exit. This was resolved in #13161 with TestingDirAuthVoteExit, but a more elegant solution (or a root cause) needs to be found in order to properly test #13718.

Workarounds are available:
TestingDirAuthVoteExit *
AssumeReachable 0 (not actually a workaround)

But they make it harder to justify that the test results apply to real-world tor bootstraps, or even chutney configs without special-case configurations.

This issue is like #11264, and could have the same root cause (a conflict between the setting of the exit flag and exit policy summaries), although this seems unlikely.

Child Tickets

Attachments (1)

torrc (3.5 KB) - added by teor 5 years ago.
chutney-generated torrc for an authority which doesn't label itself Exit even though it has accept *:*

Download all attachments as: .zip

Change History (11)

Changed 5 years ago by teor

Attachment: torrc added

chutney-generated torrc for an authority which doesn't label itself Exit even though it has accept *:*

comment:1 Changed 5 years ago by teor

Description: modified (diff)

Typo in description

comment:2 Changed 5 years ago by teor

AssumeReachable 0 is not actually a workaround.
TestingDirAuthVoteExit * from #13161 is the only available workaround for this issue.

comment:3 Changed 5 years ago by teor

Keywords: lorax added

comment:4 Changed 5 years ago by teor

Description: modified (diff)
Owner: set to teor
Status: newassigned

comment:5 Changed 5 years ago by teor

Keywords: tor-relay added; lorax removed

I think this issue occurs because dirserv_compute_performance_thresholds() assigns exit flags after filtering by router_counts_toward_thresholds(). This appears to be a feature intended to avoid pollution of the Tor network by low-quality Exit nodes.

The fix is to use an option that's already in the code. I think TestingMinExitFlagThreshold 0 should ensure the exit flag is assigned to all potential exit relays, after they self-test reachability and post their descriptors to the authorities.

comment:6 Changed 5 years ago by teor

A patch is required to make TestingMinExitFlagThreshold 0 work the way I assume it should.
I expect that TestingMinExitFlagThreshold 0 would cause authorities to ignore bandwidth (either advertised or measured) when assigning the Exit flag.

But router_is_active() marks routers as inactive if they have no bandwidthcapacity in their routerinfo.

My suggested patch is to ignore the non-zero bandwidthcapacity requirement when TestingTorNetwork is set, and TestingMinExitFlagThreshold 0.

This causes the authorities to mark themselves, and any qualifying relays, as Exits.

comment:7 Changed 5 years ago by teor

Status: assignedneeds_review

The changes to tor and chutney in #13718 have fixed this:

Bugs: #13718, #13814, maybe #13787, #13839, #13924, #13823, #13929, #13963
Branch: bug13718-fast-bootstrap
Note: There are 5 branches that start with bug13718, please choose the right one.
Repository: ​​​​​​​​https://github.com/teor2345/tor.git

Bugs: #13823
Branch: bug13823-fast-bootstrap
Repository: ​​​​​​​​https://github.com/teor2345/chutney.git

comment:8 Changed 5 years ago by teor

tor changes committed as part of of bug13718-consensus-interval merge.
chutney changes have not yet been merged.

comment:9 Changed 5 years ago by teor

dgoulet has tested the chutney changes along with the draft tor changes in #13718.

comment:10 Changed 5 years ago by teor

Resolution: fixed
Status: needs_reviewclosed

With the merge of the chutney and torspec changes in #13718, this issue is now resolved.

Note: See TracTickets for help on using tickets.