<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/circuit/reactor.rs, branch arti-v0.6.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.6.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v0.6.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2022-06-23T19:42:45Z</updated>
<entry>
<title>tor-proto: split and elaborate tor_bytes::Error instances</title>
<updated>2022-06-23T19:42:45Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-23T19:42:45Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=38004a4f4dd3aa99b81b6585039e81dc77c17f32'/>
<id>urn:sha1:38004a4f4dd3aa99b81b6585039e81dc77c17f32</id>
<content type='text'>
Some of these were for decoding particular objects (we now say
what kind of objects), and some were unrelated tor_cert errors that
for some reason we had shoved into a tor_bytes::Error.

There is now a separate tor_cert::CertError type, independent from
tor_cert's use of `tor_bytes::Error` for parsing errors.
</content>
</entry>
<entry>
<title>tor-proto: Split CellErr based on activity.</title>
<updated>2022-06-23T18:59:52Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-06-23T18:59:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=35b7b8a47ad96f5eee032fab7900b3b29bf2fa73'/>
<id>urn:sha1:35b7b8a47ad96f5eee032fab7900b3b29bf2fa73</id>
<content type='text'>
Failing to encode is fundamentally different from failing to
decode. We now treat those separately, and describe _what_ we failed
to encode or decode.
</content>
</entry>
<entry>
<title>tor-proto: err: Provide ChannelClosed as a separate unit error</title>
<updated>2022-06-21T18:19:28Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2022-06-16T17:16:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=13ca24ba3ae5a17744355b26a1706bd5aaa07891'/>
<id>urn:sha1:13ca24ba3ae5a17744355b26a1706bd5aaa07891</id>
<content type='text'>
</content>
</entry>
<entry>
<title>squash! Bump every crate's edition to 2021.</title>
<updated>2022-04-25T17:06:26Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-04-25T16:40:33Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2f6bc6bdc431fa36de70a167eea777dcf3f60bf2'/>
<id>urn:sha1:2f6bc6bdc431fa36de70a167eea777dcf3f60bf2</id>
<content type='text'>
Remove all `use` statements for `TryFrom` and `TryInto`.  These are
now redundant in Rust 2021.
</content>
</entry>
<entry>
<title>tor-proto: Remember peer information in circuit and channel</title>
<updated>2022-03-17T16:03:34Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-17T15:52:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=764930b9cd8c63a4dd59229ad6298e6b27fb375c'/>
<id>urn:sha1:764930b9cd8c63a4dd59229ad6298e6b27fb375c</id>
<content type='text'>
Each channel now remembers an OwnedChanTarget.

Each circuit now remembers a vector of OwnedChanTarget to represent
the path that it was constructed for.

Part of #415.
</content>
</entry>
<entry>
<title>ClientCirc: Move n_hops into a new Path type.</title>
<updated>2022-03-17T14:34:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-03-17T14:34:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=567995a7ca187a986d0f1d62a8648ab8c9347b2d'/>
<id>urn:sha1:567995a7ca187a986d0f1d62a8648ab8c9347b2d</id>
<content type='text'>
This will help with #415
</content>
</entry>
<entry>
<title>Update tor-proto errors to latest API.</title>
<updated>2022-02-15T14:57:03Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-15T14:57:03Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6b611d6deae2e003ea81f459cd5e005c37ab50ce'/>
<id>urn:sha1:6b611d6deae2e003ea81f459cd5e005c37ab50ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: use InternalError for internal errors.</title>
<updated>2022-02-15T14:41:11Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2022-02-11T20:20:50Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f23f375e42ef3237f9bbb7b8bfee47ecc9ced4a1'/>
<id>urn:sha1:f23f375e42ef3237f9bbb7b8bfee47ecc9ced4a1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'eta/reactor-2.5' into 'main'</title>
<updated>2022-02-03T16:27:57Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-02-03T16:27:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e9087e1fed7193f0cf5b9f9d1078340f216745ed'/>
<id>urn:sha1:e9087e1fed7193f0cf5b9f9d1078340f216745ed</id>
<content type='text'>
Fix severe reactor ordering problems

See merge request tpo/core/arti!282</content>
</entry>
<entry>
<title>Fix severe reactor ordering problems</title>
<updated>2022-02-03T15:04:28Z</updated>
<author>
<name>eta</name>
<email>tor@eta.st</email>
</author>
<published>2022-02-02T14:21:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=24d12163f2a5b109adc1d40ad815efecf36cf499'/>
<id>urn:sha1:24d12163f2a5b109adc1d40ad815efecf36cf499</id>
<content type='text'>
A number of severe problems with the circuit reactor were fixed which
could cause reordering of cells (which causes relays to terminate the
circuit with a protocol violation, as they become unable to decrypt
them). These mostly revolve around improper usage of queues:

- The code assumed that a failure to place cells onto the channel would
  persist for the duration of a reactor cycle run. However, under high
  contention, this wouldn't always be the case.
  - This leads to some cells getting enqueued while others go straight
    through, before the enqueued cells.
  - To fix this, we block sending cells out of the channel while there
    are still some enqueued.
- The hop-specific queues queued after encryption, not before. This was
  very brittle, and led to frequent mis-ordering.
  - This was fixed by making them not do that.

This is arti!264 / 5bce9db5628126be2b736f228211174fe4132918 without the
refactor part.
</content>
</entry>
</feed>
