<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-circmgr/src/err.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-21T13:06:32Z</updated>
<entry>
<title>Expose more peer information from circuit build failures</title>
<updated>2022-03-21T13:06:32Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-18T15:57:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d38aafa054a89d7e5217b48d9161d899d18553aa'/>
<id>urn:sha1:d38aafa054a89d7e5217b48d9161d899d18553aa</id>
<content type='text'>
We already have the ability to get peer information from ChanMgr
errors, and therefore from any RetryErrors that contain ChanMgr
errors.

This commit adds optional peer information to tor-proto errors, and
a function to expose whatever peer information is available.
</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>Fold EK::Canceled into TransientFailure</title>
<updated>2022-02-22T20:30:12Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-22T20:30:12Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=04ca1f662f4d53726d888973e12261673da08b12'/>
<id>urn:sha1:04ca1f662f4d53726d888973e12261673da08b12</id>
<content type='text'>
Also add some TODO comments in circmgr for future work.
</content>
</entry>
<entry>
<title>Handle panics from circuit construction.</title>
<updated>2022-02-18T19:22:38Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-18T19:22:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3ff9b187ea26aaec4875067fcdbf485ecc9f597d'/>
<id>urn:sha1:3ff9b187ea26aaec4875067fcdbf485ecc9f597d</id>
<content type='text'>
We handle them by reporting them to task that's waiting for the
circuit, then relaying the panic.

Doing so allows the waiting task to distinguish panics
(EK::Internal) from cases where the reactor dropped the task
entirely (EK::ReactorShuttingDown).  And doing _that_ removes one
case of EK::Canceled, which helps us on our goals towards #348.

Closes #347.
</content>
</entry>
<entry>
<title>Rename CircuitTimeout to TorNetworkTimeout.</title>
<updated>2022-02-17T17:22:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-17T17:22:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=de86ac0b0f8eda0c3045cc7e7e77381165e38851'/>
<id>urn:sha1:de86ac0b0f8eda0c3045cc7e7e77381165e38851</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor_circmgr::Error: Sort variants by interesting-ness.</title>
<updated>2022-02-17T17:12:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-17T17:05:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4db586cf007b7965013287abea2b9ab88a0d03c6'/>
<id>urn:sha1:4db586cf007b7965013287abea2b9ab88a0d03c6</id>
<content type='text'>
We can't use discriminants here now, but maybe we can in the future.
</content>
</entry>
<entry>
<title>Clarify and rename PendingCanceled</title>
<updated>2022-02-16T19:35:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-16T19:27:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=543916e81254ba76dc8975f6195b73db9f6b58ed'/>
<id>urn:sha1:543916e81254ba76dc8975f6195b73db9f6b58ed</id>
<content type='text'>
From its old name, this error had implied that we were giving no
useful information when we were waiting on a pending cirucit request
that failed.  In fact, this error would only happen if we dropped the
`mpsc::Sender` for a circuit attempt without reporting success or
failure.
</content>
</entry>
<entry>
<title>Provide a better ErrorKind from RetryError.</title>
<updated>2022-02-16T19:35:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-16T19:16:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=1d773e748f6bb90c7ba46e79a6254e0a9d1103d4'/>
<id>urn:sha1:1d773e748f6bb90c7ba46e79a6254e0a9d1103d4</id>
<content type='text'>
(Instead of reporting the _last_ error, report the _worst_ error.)
</content>
</entry>
<entry>
<title>circmgr: Add a Kind for speculative guard failure.</title>
<updated>2022-02-16T19:35:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-16T18:04:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c1899f787bd5eb3513b1d1c5661d90e8498874b9'/>
<id>urn:sha1:c1899f787bd5eb3513b1d1c5661d90e8498874b9</id>
<content type='text'>
These errors should almost never be seen by the user; we should instead
retry the circuit.  But they _can_ be seen by the use if selecting a
guard takes too long, or too many attempts. (Therefore, they aren't true
"internal" errors.)

I suspect that we might not want to keep this TransientFailure kind, but
I'm not sure what else to do here for now.
</content>
</entry>
<entry>
<title>Add kinds for *most* circmgr errors.</title>
<updated>2022-02-16T19:35:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-16T17:52:32Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=96d856e2640011a7aeb0c5ecef4d787e0fb9b610'/>
<id>urn:sha1:96d856e2640011a7aeb0c5ecef4d787e0fb9b610</id>
<content type='text'>
There are a couple of tricky ones I'll do separately.
</content>
</entry>
</feed>
