<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-dirserver/src/mirror/operation, branch arti-v2.0.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.0.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v2.0.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2026-01-20T12:16:44Z</updated>
<entry>
<title>tor-dirserver: Make downloader stateless</title>
<updated>2026-01-20T12:16:44Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-01-20T12:01:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d4d99b5dc87632596fb6786288a13a24ec79efe0'/>
<id>urn:sha1:d4d99b5dc87632596fb6786288a13a24ec79efe0</id>
<content type='text'>
This commit makes the downloader found in `mirror::operation::download`
stateless by removing the `preferred_authority` field and changing all
methods from `&amp;mut self` to `&amp;self`.

The preferred authority is now accepted as a parameter to
`DownloadManager::download` which also returns a tuple now with the
actually used authority alongside the response, putting the management
of this to the responsibility of the caller.

Meanwhile, it also renames the structure from `ConsensusBoundDownloader`
to `DownloadManager` because it no longer keeps a state that
invalidates after a consensus "ends".

The purpose of this is to simplify overall state in order to make the
implementation of a finite-state-machine for the dirmirror operation
more easy (and deterministic).
</content>
</entry>
<entry>
<title>Fix flaky `request_fail_ultimately` test</title>
<updated>2026-01-19T09:45:49Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-01-19T09:45:49Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=bdf898a9e0cf7e511e09e231f747dfd9a58fe885'/>
<id>urn:sha1:bdf898a9e0cf7e511e09e231f747dfd9a58fe885</id>
<content type='text'>
This commit fixes the flaky `request_fail_ultimately` in tor-dirserver,
which is flaky due to the operating system's handling of TCP RSTs, which
are generally detected stochastically and sometimes are not received
even after the entire response has been parsed.

This leads to tor-dirclient either returning a connection reset or a
truncated header error, depending on whether it successfully or
unsuccessfully reads zero bytes from the server.

Fixes #2318
</content>
</entry>
<entry>
<title>tor-dirserver: Speedup tests using tokio's test-util</title>
<updated>2026-01-14T16:38:04Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-01-14T16:31:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=aa42cd41612c369a32bb6849fd6724ab12bdca36'/>
<id>urn:sha1:aa42cd41612c369a32bb6849fd6724ab12bdca36</id>
<content type='text'>
This commit speeds up the tests in `tor-dirserver` by using
functionality from Tokio's `test-util`.

Most notably, it runs the time intensive test in paused mode, which
means that the clock gets advanced either explicitly or implicitly using
auto-advance in case the runtime has nothing to do.

In our case, the last one, auto-advancing, is used, leading to our
sleep calls returning immediately.

This is good enough for testing in this module.  It is not the
responsibility of tor-dirserver to ensure whether `RetryDelay` returns
proper values, as this is the responsibility of `tor-basic-utils`.

Still, it is a bit unfortunate that Tokio offers no way to manually
disbale the auto-advancing.  In the future, it might be useful to
migrate more parts of this to crate to `tor-rtcompat`, but for now, this
change is a good enough performance fix.
</content>
</entry>
<entry>
<title>tor-dirserver: Remove slow ineffective test</title>
<updated>2026-01-14T16:37:25Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2026-01-14T14:43:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=ed8492816e0c86eade94f4df3ccf574990de3eda'/>
<id>urn:sha1:ed8492816e0c86eade94f4df3ccf574990de3eda</id>
<content type='text'>
This commit removes `mirror::download::test::request_fail_timeout` which
takes more than five seconds (due to a timeout) and is generally
ineffective in what it does, because testing whether a task is still
sleeping after a certain time is not super trivial with the tools Tokio
offers.

All this test offers is testing that we enter a timeout at all.
</content>
</entry>
<entry>
<title>fix(download): Use push_timed with mockable time sources</title>
<updated>2025-12-17T18:07:17Z</updated>
<author>
<name>Nihal</name>
<email>4218-nihalxkumar@gitlab.torproject.org</email>
</author>
<published>2025-12-17T18:06:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=11d2a7e3e12c4192b49b807f211f924ac9855094'/>
<id>urn:sha1:11d2a7e3e12c4192b49b807f211f924ac9855094</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirserver: Document nested round-robins</title>
<updated>2025-12-10T11:20:13Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2025-12-09T15:22:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=53d620aab51e40f225db4d9c1dd2ebe7187d4e22'/>
<id>urn:sha1:53d620aab51e40f225db4d9c1dd2ebe7187d4e22</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirserver: Improve download_single's doc</title>
<updated>2025-12-10T11:20:12Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2025-12-09T15:18:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6de0ef4c505c245d6644134f7305d112e56486c7'/>
<id>urn:sha1:6de0ef4c505c245d6644134f7305d112e56486c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirserver: Rename DownloadManager to ConsensusBoundDownloader</title>
<updated>2025-12-10T11:20:11Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2025-12-09T15:15:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f0a66d6c36d6e8196e54f0b328be47af7e44c9c6'/>
<id>urn:sha1:f0a66d6c36d6e8196e54f0b328be47af7e44c9c6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirclient: Remove Downloadable for good</title>
<updated>2025-12-10T11:20:10Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2025-12-09T15:12:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=edaf6602f657412578a79ef255ee5eb9e85d7db7'/>
<id>urn:sha1:edaf6602f657412578a79ef255ee5eb9e85d7db7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-dirserver: Documentation improvements</title>
<updated>2025-12-10T11:20:08Z</updated>
<author>
<name>Clara Engler</name>
<email>cve@cve.cx</email>
</author>
<published>2025-12-08T12:03:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a1ba801deb0e7dec7b881fbcdf4ef26f7377e917'/>
<id>urn:sha1:a1ba801deb0e7dec7b881fbcdf4ef26f7377e917</id>
<content type='text'>
</content>
</entry>
</feed>
