Age | Commit message (Collapse) | Author |
|
We need to subtract both the current built circuits *and* the attempted
circuits from the attempt count during scaling, since *both* have already been
counted there.
|
|
|
|
Just in case more issues remain with scaling, it would be nice to pin-point
them as such.
|
|
We didn't see this in normal usage anyway.
|
|
Should silence two path bias Bug messages seen on relays at startup.
|
|
It seems that some versions of clang that would prefer the
-Wswitch-enum compiler flag to warn about switch statements with
missing enum values, even if those switch statements have a
default.
Fixes bug 8598; bugfix on 0.2.4.10-alpha.
|
|
|
|
|
|
|
|
Now that circid_t is 4 bytes long, the default integer promotions will
leave it alone when sizeof(int) == 4, which will leave us formatting an
unsigned as an int. That's technically undefined behavior.
Fixes bug 8447 on bfffc1f0fc7616a25c32da2eb759dade4651659e. Bug not
in any released Tor.
|
|
The new name is circuit_mark_all_dirty_circs_as_unusable.
This resolves an XXX024
|
|
This should prevent crashes on further recurrence of 8065, and help
diagnose such if they occur
|
|
Conflicts:
src/or/channel.h
src/or/connection_or.c
src/or/cpuworker.c
|
|
|
|
In addition to rejecting them post-hoc, avoid picking them in the
first place. This makes us less likely to decide that we can't add
guards at all.
|
|
We shouldn't be calling choose_random_entry() for directory
conncetions; that's what choose_random_dirguard() is for.
|
|
Coverity is worried about this (CID 980653). It hasn't happened in
testing, but we might as well make sure it can't happen.
|
|
|
|
|
|
I think we want both sets of messages to appear independently to help us know
what needs tuning.
|
|
I noticed bad wifi networks can have low use success rates.
|
|
These seem to have gotten conflicted out of existence while mike was
working on path bias stuff.
Thanks to sysrqb for collecting these in a handy patch.
|
|
Now we can specify to skip bridges that wouldn't be able to answer the
type of dir fetch we're launching.
It's still the responsibility of the rest of the code to prevent us from
launching a given dir fetch if we have no bridges that could handle it.
|
|
Now as we move into a future where most bridges can handle microdescs
we will generally find ourselves using them, rather than holding back
just because one of our bridges doesn't use them.
|
|
|
|
This informational counter is probably now redundant, but might as well keep
it consistent I guess.
|
|
|
|
Also document it better.
Mention this refactoring in the comments for the path state machine.
|
|
|
|
Also, deprecate the torrc options for the scaling values. It's unlikely anyone
but developers will ever tweak them, even if we provided a single ratio value.
|
|
|
|
|
|
|
|
|
|
Improve debug logs and fix a state fencepost error.
|
|
Make a debug log more informative.
|
|
Move a log message about scaling to after we scale
|
|
If any circuits were opened during a scaling event, we were scaling attempts
and successes by different amounts. This leads to rounding error.
The fix is to record how many circuits are in a state that hasn't been fully
counted yet, and subtract that before scaling, and add it back afterwords.
|
|
Since they use RELAY_EARLY (which can be seen by all hops on the path),
it's not safe to say they actually count as a successful use.
There are also problems with trying to allow them to finish extending due to
the circuit purpose state machine logic. It is way less complicated (and
possibly more semantically coherent) to simply wait until we actually try to
do something with them before claiming we 'used' them.
Also, we shouldn't call timed out circuits 'used' either, for semantic
consistency.
|
|
Path use bias measures how often we can actually succeed using the circuits we
actually try to use. It is a subset of path bias accounting, but it is
computed as a separate statistic because the rate of client circuit use may
vary depending on use case.
|
|
This is an automatically generated commit, from the following perl script,
run with the options "-w -i -p".
s/smartlist_string_num_isin/smartlist_contains_int_as_string/g;
s/smartlist_string_isin((?:_case)?)/smartlist_contains_string$1/g;
s/smartlist_digest_isin/smartlist_contains_digest/g;
s/smartlist_isin/smartlist_contains/g;
s/digestset_isin/digestset_contains/g;
|
|
|
|
|
|
|
|
Also add in the random nonce generation.
|
|
In general, if we tried to use a circ for a stream, but then decided to place
that stream on a different circuit, we need to probe the original circuit
before deciding it was a "success".
We also need to do the same for cannibalized circuits that go unused.
|
|
Fix cannibalize, rend circ and intro circ timeout handling.
|
|
Conflicts:
src/or/cpuworker.c
src/or/or.h
src/test/bench.c
|
|
|
|
"works for me"
|