Opened 8 months ago

Last modified 4 months ago

#32139 accepted enhancement

Disable all dirauth options when those modules are disabled

Reported by: teor Owned by: nickm
Priority: Medium Milestone: Tor: 0.4.4.x-final
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-design, network-team-roadmap-2020Q1, 043-deferred
Cc: nickm Actual Points:
Parent ID: #31851 Points: 2
Reviewer: teor Sponsor:

Description (last modified by teor)

Here's what we want to change in this ticket:

  • --disable-module-dirauth (and, by implication, --disable-module-relay)
    • Disables *AuthoritativeDir*, and MinUptimeHidServDirectoryV2 options
      • Maybe these options should move under Directory Authority Server Options in the man page
    • Disables all the options under Directory Authority Server Options

Child Tickets

TicketTypeStatusOwnerSummary
#32806enhancementclosednickmMove "easy" dirauth-only options to dirauth module
#32807defectclosedMark TestingEstimatedDescriptorPropagationTime as OBSOLETE.
#32809defectnewMove AuthDir* policy entries into feature/dirauth
#32810defectnewMove timing-related authority options into dirauth module
#32812defectnewMove authority-mode options into dirauth module
#32813defectnewMove V3BandwidthsFile into feature/dirauth module
#32814defectnewPossibly, move V3AuthUseLegacyKey into dirauth module
#32815tasknewMove all directory authority options into the dirauth man page section

Change History (15)

comment:1 Changed 7 months ago by teor

Description: modified (diff)
Summary: Disable dirauth and relay options when those modules are disabledDisable all dirauth and relay options when those modules are disabled

comment:2 Changed 7 months ago by teor

Description: modified (diff)

comment:3 Changed 7 months ago by teor

Points: 2

comment:4 Changed 7 months ago by teor

Keywords: network-team-roadmap-november added; network-team-roadmap-october removed
Owner: set to nickm
Status: newassigned
Summary: Disable all dirauth and relay options when those modules are disabledDisable all dirauth options when those modules are disabled

Now this ticket is only for dirauth.

comment:5 Changed 6 months ago by nickm

Reviewer: teor
Status: assignedneeds_review

I have some initial work here in a branch called dirauth_config. It isn't ready for merge, but I've made a PR at https://github.com/torproject/tor/pull/1607 to see what CI thinks.

So far, it moves only a single option into a separate dirauth configuration object. Additionally, it makes some changes needed so that disableable modules can "own" their own options:

  1. Subsystems associated with disabled modules are no longer "missing". Instead, they are "stub" subsystems that do nothing, but which still declare disabled options.
  2. There is support for a flag that marks options as "disabled".

I'd like some preliminary feedback here if you have time. What do you think of this approach?

comment:6 Changed 6 months ago by teor

Status: needs_reviewneeds_revision

The approach seems fine, but we shouldn't be duplicating the level in stub modules. It's unnecessary and error-prone.

Happy to review again after that design issue is fixed.

Thanks for the tests!

comment:7 Changed 6 months ago by nickm

Status: needs_revisionneeds_review

I've moved the level declaration to the *_sys.h headers.

Rationale: I think that having a real level here is valuable, since these modules really _are_ registered with the subsystem manager, which connects them to the configuration system in the order they are given. Giving them a "fake" level would mean that we wouldn't have a clear order in which to register them.

comment:8 Changed 6 months ago by teor

Status: needs_reviewmerge_ready

Looks good!

It seems that Travis CI failed due to a test hang:
https://travis-ci.org/torproject/tor/builds/626796154

I opened #32804 to track this issue, we have seen similar issues in Appveyor Windows tests (#29645).

I closed and re-opened the PR to get a fresh merge with the latest master.

Feel free to merge after CI passes.

comment:9 Changed 6 months ago by nickm

Status: merge_readyaccepted

CI has passed; squashed and merged!

Now I'll start doing other options here.

comment:10 Changed 6 months ago by teor

Description: modified (diff)

comment:11 Changed 6 months ago by teor

I created a child ticket for the documentation fixes.

comment:12 Changed 5 months ago by gaba

Keywords: network-team-roadmap-2020Q1 added; network-team-roadmap-november removed

comment:13 Changed 4 months ago by nickm

Keywords: 043-deferred added

All 0.4.3.x tickets without 043-must, 043-should, or 043-can are about to be deferred.

comment:14 Changed 4 months ago by nickm

Milestone: Tor: 0.4.3.x-finalTor: 0.4.4.x-final

comment:15 Changed 4 months ago by gaba

Sponsor: Sponsor31-can

No more sponsor 31. All this tickets remained open after sponsor 31 ended.

Note: See TracTickets for help on using tickets.