[tor-bugs] #28780 [Core Tor/Tor]: circpadding: Add machine flag for not closing circuit if machine is active

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat May 11 04:17:27 UTC 2019


#28780: circpadding: Add machine flag for not closing circuit if machine is active
-------------------------------------------------+-------------------------
 Reporter:  asn                                  |          Owner:  (none)
     Type:  defect                               |         Status:
                                                 |  needs_review
 Priority:  Very High                            |      Milestone:  Tor:
                                                 |  0.4.1.x-final
Component:  Core Tor/Tor                         |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  wtf-pad, tor-relay, tor-cell,        |  Actual Points:  6
  padding, 041-proposed, network-team-           |
  roadmap-2019-Q1Q2                              |
Parent ID:  #28634                               |         Points:  5
 Reviewer:  asn                                  |        Sponsor:
                                                 |  Sponsor2
-------------------------------------------------+-------------------------
Changes (by mikeperry):

 * status:  needs_revision => needs_review


Comment:

 Freshly squashed nicely organized PR that addresses previous comments:
 https://github.com/torproject/tor/pull/1015

 Summary of branch:

  * Still hooks circuit_mark_for_close(), but the
 circpad_is_using_circuit_for_padding() function name and mechanism are
 much clearer.
  * Only one return branch in the circpad_is_using_circuit_for_padding()
 function keeps the circuit open. All others result in relinquishing
 ownership to
 circuit_mark_for_close()/circuit_expire_old_circuits_clientside().
  * It is easy to see that this one branch cannot hold the circuit open for
 more than CIRCPAD_DELAY_MAX_SECS (1.25hr) of inactivity on a circuit, even
 if it is deadlocked. This is also verified in the unit tests, by testing
 circuit_expire_old_circuits_clientside() directly.
  * If padding machines deadlock by ping-ponging (sending padding back and
 forth forever), then they will hit their machine-specific padding overhead
 limits, and cease padding. At which point, network activity on the circuit
 will cease, and circpad_is_using_circuit_for_padding() will return 0 and
 allow circuit_expire_old_circuits_clientside() to close the circuit
 (machine-specific padding limits are tested in a previously existing
 test).

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28780#comment:39>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list