<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/mgr.rs, branch arti-v0.2.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.2.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.2.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-03-30T18:14:52Z</updated>
<entry>
<title>circmgr: limit circuit attempts when launch_parallelism &gt; 1.</title>
<updated>2022-03-30T18:14:52Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-30T18:14:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bd798764a47332393fd6b036093dba9c73770d79'/>
<id>urn:sha1:bd798764a47332393fd6b036093dba9c73770d79</id>
<content type='text'>
Previously, if we had launch_parallelism &gt; 1, and we were willing to
retry building a circuit max_retries times, then we'd launch up to
max_retries * launch_parallelism circuits before giving up.  Ouch!

With this patch, we try to keep the total number of circuits
planned and attempted to the actual max_retries limit.

Part of #329; found with arti-testing.
</content>
</entry>
<entry>
<title>Turn FallbackList into a real type, and store one in GuardMgr.</title>
<updated>2022-03-30T14:39:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T20:44:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9da43189f36b19681d10b78ef982c52c929b4573'/>
<id>urn:sha1:9da43189f36b19681d10b78ef982c52c929b4573</id>
<content type='text'>
The guard manager is responsible for handing out the first hops of
tor circuits, keeping track of their successes and failures, and
remembering their states.  Given that, it makes sense to store this
information here.  It is not yet used; I'll be fixing that in
upcoming commits.

Arguably, this information no longer belongs in the directory
manager: I've added a todo about moving it.

This commit will break compilation on its own in a couple of places;
subsequent commits will fix it up.
</content>
</entry>
<entry>
<title>Move fallback.rs into guardmgr.</title>
<updated>2022-03-30T14:34:48Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-25T17:38:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=80b65c3a4d4108c6b4b0cb91722f89c8e5859b7d'/>
<id>urn:sha1:80b65c3a4d4108c6b4b0cb91722f89c8e5859b7d</id>
<content type='text'>
This is the logical place for it, I think: the GuardMgr's job is to
pick the first hop for a circuit depending on remembered status for
possible first hops.  Making this change will let us streamline the
code that interacts with these objects.
</content>
</entry>
<entry>
<title>move isolation in separate module</title>
<updated>2022-03-24T18:43:54Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2022-03-24T18:43:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8dc6e958aa305236054a43c0db74dda9176e0702'/>
<id>urn:sha1:8dc6e958aa305236054a43c0db74dda9176e0702</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rename *_isolation_group to *_isolation</title>
<updated>2022-03-24T17:56:22Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2022-03-24T17:56:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=de5f517da64755feaab61485bc15e2eab2860950'/>
<id>urn:sha1:de5f517da64755feaab61485bc15e2eab2860950</id>
<content type='text'>
</content>
</entry>
<entry>
<title>circmgr: When planning, only keep one error; log them all.</title>
<updated>2022-03-21T19:06:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-21T19:06:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4a644a98791dace07434da3c970b31b74b35c90d'/>
<id>urn:sha1:4a644a98791dace07434da3c970b31b74b35c90d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>circmgr: Change API for using FallbackDirs</title>
<updated>2022-03-21T13:06:32Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-17T13:33:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d778a922255a75e36baa5296451e9982045ac777'/>
<id>urn:sha1:d778a922255a75e36baa5296451e9982045ac777</id>
<content type='text'>
It'll soon more convenient to pass in FallbackDirs as a slice of
references, rather than just a slice of FallbackDirs: I'm going to
be changing how we handle these in tor-dirmgr.
</content>
</entry>
<entry>
<title>circmgr: use AllGuardsDown to retry better</title>
<updated>2022-03-21T13:06:32Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-16T18:15:29Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=451a53a5bfc8f8992d603f638956d144512cd70c'/>
<id>urn:sha1:451a53a5bfc8f8992d603f638956d144512cd70c</id>
<content type='text'>
If all guards are down and they won't be retriable for a while, try
waiting that long to get whichever guard _is_ retriable.

Additionally, if we are making multiple circuit plans in parallel,
only report our planning as having failed if we failed at making
_all_ the plans.  Previously we treated any failure as fatal for the
other plans, which could lead to trouble in the case when guards
were all down or pending.

Part of #407.
</content>
</entry>
<entry>
<title>add trait to help test isolation related code</title>
<updated>2022-03-16T18:24:23Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2022-03-15T23:30:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4eb90b72c04b34fb54baa197b1bf85734a769f64'/>
<id>urn:sha1:4eb90b72c04b34fb54baa197b1bf85734a769f64</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace manual Debug impl with std derive in tor-circmgr</title>
<updated>2022-03-02T17:04:07Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-03-02T15:24:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=90f86b47e468e6f5cdf5375787fac7630406f8a5'/>
<id>urn:sha1:90f86b47e468e6f5cdf5375787fac7630406f8a5</id>
<content type='text'>
When I wrote this, I arranged to skip dumping the field `pending`.
This must have been because I thought that either

(a) PendingEntry couldn't `#[derive(Debug)]` (but it can)

and/or

(b) Some of the fields of PendingEntry ought not to be dumped because
they might contain (eg) packet data.  But I think they don't: there's
just the spec, and the Result which is (basically) a Circ.

I tried preseving something closer to the original using educe, but
educe gets somehow tangled up with the generics, and the result fails
to compile.  I haven't investigated this further.
</content>
</entry>
</feed>
