Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug28780 squashed3 #1023

Closed
Closed

Conversation

Labels
None yet
Projects
None yet
3 participants
@mikeperry-tor
Copy link
Contributor

@mikeperry-tor mikeperry-tor commented May 15, 2019

No description provided.

mikeperry-tor added 12 commits May 15, 2019
When a circuit is marked for close, check to see if any of our padding
machines want to take ownership of it and continue padding until the machine
hits the END state.

For safety, we also ensure that machines that do not terminate are still
closed as follows: Because padding machine timers are UINT32_MAX in size, if
some sort of network event doesn't happen on a padding-only circuit within
that time, we can conclude it is deadlocked and allow
circuit_expire_old_circuits_clientside() to close it.

If too much network activity happens, then per-machine padding limits can be
used to cease padding, which will cause network cell events to cease, on the
circuit, which will cause circpad to abandon the circuit as per the above time
limit.
Also test circpad expiry safeguard.
If circuit padding wants to keep a circuit open and pathbias used to ignore
it, pathbias should continue to ignore it.

This may catch other purpose-change related miscounts (such as timeout
measurement, cannibalization, onion service circuit transitions, and
vanguards).
To ease debugging of miscount issues, attach vanguards with --loglevel DEBUG
and obtain control port logs (or use any other control port CIRC and
CIRC_MINOR event logging mechanism).
Better name for function to mark circuits as held open for padding.
Better name for circpad mark for padding function.
Clarify comment about how the deadlock check works.
Remove a silly else clause, since the sibling branch was a continue.
@coveralls
Copy link

@coveralls coveralls commented May 15, 2019

Pull Request Test Coverage Report for Build 5014

  • 28 of 35 (80.0%) changed or added relevant lines in 4 files are covered.
  • 1254 unchanged lines in 43 files lost coverage.
  • Overall coverage decreased (-1.6%) to 62.486%

Changes Missing Coverage Covered Lines Changed/Added Lines %
src/core/or/circuitlist.c 2 3 66.67%
src/core/or/circuituse.c 0 1 0.0%
src/feature/client/circpathbias.c 0 2 0.0%
src/core/or/circuitpadding.c 26 29 89.66%
Files with Coverage Reduction New Missed Lines %
src/feature/hs/hs_service.c 1 73.68%
src/feature/dirclient/dirclient.c 1 18.37%
src/feature/nodelist/nodelist.c 2 71.88%
src/feature/nodelist/microdesc.c 2 72.11%
src/lib/buf/buffers.c 2 91.03%
src/feature/client/addressmap.c 2 60.54%
src/feature/rend/rendcache.c 2 93.02%
src/lib/evloop/token_bucket.h 2 66.67%
src/lib/fs/files.c 2 67.21%
src/feature/dircache/consdiffmgr.c 2 89.81%
Totals Coverage Status
Change from base Build 5006: -1.6%
Covered Lines: 46595
Relevant Lines: 74569

💛 - Coveralls

@torproject-pusher torproject-pusher deleted the branch torproject:master May 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment