<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-dirmgr/src/bootstrap.rs, branch arti-v1.0.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.0.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.0.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-09-10T12:37:32Z</updated>
<entry>
<title>fix clippy::unwrap_used and old TODO for msrv 1.56</title>
<updated>2022-09-10T12:37:32Z</updated>
<author>
<name>trinity-1686a</name>
<email>trinity@deuxfleurs.fr</email>
</author>
<published>2022-09-10T12:37:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dcbdd076eb5df0d5d118a760d37f0071728bbbe2'/>
<id>urn:sha1:dcbdd076eb5df0d5d118a760d37f0071728bbbe2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>`TaskSchedule`: give error on `sleep*()` if last handle is dropped</title>
<updated>2022-09-07T13:22:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-09-07T13:22:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=86e479ae1360a0cea3ad8020653c59f6aa52d338'/>
<id>urn:sha1:86e479ae1360a0cea3ad8020653c59f6aa52d338</id>
<content type='text'>
This fixes an busy-loop.

When the last `TaskHandle` on a `TaskSchedule` is dropped, the
schedule is permanently canceled: whatever operation it was
scheduling should no longer be performed.  But our code was broken:
the `sleep()` and `sleep_until_wallclock()` functions don't verify
whether the handles are dropped or not.

This breakage caused an CPU-eating busy-loop in
`sleep_until_wallclock`.

With this patch, we now return a `Result&lt;(), SleepError&gt;` from these
functions.

Fixes #572.
</content>
</entry>
<entry>
<title>tor-dirmgr: Remove opt_netdir entirely.</title>
<updated>2022-07-26T09:41:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-07-25T16:22:23Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=14cd423630681b22b0836647f923c8e388242f8a'/>
<id>urn:sha1:14cd423630681b22b0836647f923c8e388242f8a</id>
<content type='text'>
Its existence tended to hide bugs, and was just asking for trouble.
</content>
</entry>
<entry>
<title>Make display formats work with older derive_more.</title>
<updated>2022-06-14T18:10:18Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-14T18:10:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=331578d19cf18457f5871966005183a6bda8d374'/>
<id>urn:sha1:331578d19cf18457f5871966005183a6bda8d374</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Do not update_progress on load if nothing happened.</title>
<updated>2022-06-14T13:58:58Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-14T13:58:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=660b3104a9780b8c1f7d87d314408a8c3bacb843'/>
<id>urn:sha1:660b3104a9780b8c1f7d87d314408a8c3bacb843</id>
<content type='text'>
If there was no partial information, then calling update_progress
will now report a stall in this case, which is not what we want.
</content>
</entry>
<entry>
<title>DirMgr: Track errors, stalls, and resets as part of status.</title>
<updated>2022-06-13T17:58:31Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-13T17:58:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=13c152d2ac853296124b898389e550557dde98cc'/>
<id>urn:sha1:13c152d2ac853296124b898389e550557dde98cc</id>
<content type='text'>
A "reset" happens whenever we have to start a download attempt over
-- either because we ran out of retries, or we found something wrong
with the consensus after fetching certificates.

An "error" happens when we have a recoverable error from one or more
directory sources.

A "stall" happens whenever a round of downloads or cache loads leads
to no change in the status.

We don't yet use this as part of our status reporting.
</content>
</entry>
<entry>
<title>Refactor our logic for distinguishing download attempts</title>
<updated>2022-06-13T17:21:09Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-13T17:21:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2a2afaa7c277da2b2bfe00b65385eeef840fbbde'/>
<id>urn:sha1:2a2afaa7c277da2b2bfe00b65385eeef840fbbde</id>
<content type='text'>
Previously we used the "if-modified-since" time associated with the
consensus download, and/or the "valid-after" time in the consensus
attempt, to put multiple attempts into sequence, and to tell one
from another.  But that approach was always a kludge, and will soon
get more unreliable as the DirStatus logic gets a bit more complex.

With this commit, we change separate download attempts to be
identified with an AttemptId that increments whenever we decide to
get a different directory from the one we have.  IMO this new code
is _much_ cleaner.
</content>
</entry>
<entry>
<title>Refactor most DirStatus users to use DirProgress.</title>
<updated>2022-06-13T16:22:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-13T16:22:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=68ea880b84c9aedfc276921675f94a257bcc2556'/>
<id>urn:sha1:68ea880b84c9aedfc276921675f94a257bcc2556</id>
<content type='text'>
This is all crate-internal APIs, fortunately.
</content>
</entry>
<entry>
<title>DirMgr: Refactor bootstrap to use a TaskSchedule for sleeping.</title>
<updated>2022-06-10T17:59:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-07T16:37:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=171b406b00d0abef5debbb3b0090dfe881206bac'/>
<id>urn:sha1:171b406b00d0abef5debbb3b0090dfe881206bac</id>
<content type='text'>
This change (not yet exposed as an API) will let the TorClient have
a `TaskHandle` corresponding to the directory task, letting it
make the directory task dormant as needed.
</content>
</entry>
<entry>
<title>DirMgr:: Remove Error::NoChange as redundant.</title>
<updated>2022-05-25T12:58:37Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-05-25T12:58:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0caa5bcba5c3be8aca2fb90331a830d1a22f5e22'/>
<id>urn:sha1:0caa5bcba5c3be8aca2fb90331a830d1a22f5e22</id>
<content type='text'>
Now that the relevant functions now report changed/not-changed
status via a boolean out-parameter (see !527), there's no reason to
have a separate NoChanged error case.

Closes #484.
</content>
</entry>
</feed>
