- Apr 04, 2022
-
-
Nick Mathewson authored
We were treating restrict_mut() failures as internal errors, and using internal errors to represent them. But in fact, these failures are entirely possible based on timing. Here's how it happens: * Two different circuit requests arrive at the same time, and both notice a pending circuit that they could use. * The pending circuit completes; both pending requests are notified. * The first request calls restrict_mut(), and restricts the request in such a way that the second couldn't use it. * The second request calls restrict_mut(), and gets a failure. Because of this issue, we treat these errors as transient failures and just wait for another circuit. Closes #427. (This is not a breaking API change, since `AbstractSpec` is a crate-private trait.)
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- Apr 02, 2022
-
-
Nick Mathewson authored
This is necessary to fix build for M1 apples.
-
- Apr 01, 2022
-
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
Bump versions in preparation for 0.2.0 release. See merge request tpo/core/arti!445
-
Nick Mathewson authored
Not all of these strictly need to be bumped to 0.2.0; many could go to 0.1.1 instead. But since everything at the tor-rtcompat and higher layers has had breaking API changes, it seems not so useful to distinguish. (It seems unlikely that anybody at this stage is depending on e.g. tor-protover but not arti-client.)
-
Nick Mathewson authored
Unlike the rest of the crates, these don't have a "tor-" or "arti-" prefix, and are potentially used by code outside arti. With that in mind, it's probably for the best not to bump them to 0.2.0 along with the rest of our crates. They have had no changes since 0.1.0 other than refactoring and changing of clippy lints. Therefore, I'm not bumping the dependencies from other crates onto these: it's fine whether our other crates use caret/retry-error 0.1.0 or 0.1.1.
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
Run cargo upgrade/update in preparation for 0.2.0 See merge request tpo/core/arti!444
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
- Mar 31, 2022
-
-
Nick Mathewson authored
Implement a directory munger to simulate pathological cases in arti-testing (v2) Closes #397 See merge request tpo/core/arti!442
-
Nick Mathewson authored
-
-
Nick Mathewson authored
This feature allows us to detect different failing cases for #329 that would otherwise be hard to induce. It works by filtering consensus directory objects and/or microdescriptor objects before introducing them to the directory manager. Closes #397.
-
Nick Mathewson authored
This commit uses the `visibility` and `visible` crates to conditionally make certain structs and their fields public (respectively). This is incredibly dangerous to use for anything besides testing, and I've tried to write the documentation for the feature accordingly.
-
Nick Mathewson authored
Minor retry tuning to improve behavior under failing conditions. See merge request tpo/core/arti!439
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
Replace the next delay field immediately rather than taking it and _then_ setting it. This way, it's never in an incorrect state.
-
Ian Jackson authored
Fix typo See merge request tpo/core/arti!441
-
- Mar 30, 2022
-
-
Dimitris Apostolou authored
-
Nick Mathewson authored
The older default seems (experimentally) to be ridiculously high. Generally, if we can't build a circuit within a handful attempts, that circuit has already timed out... unless there is a fast-failure condition, in which case we're just hammering the network (or our view of it.) Found with `arti-testing` for #329.
-
Nick Mathewson authored
Previously, if we had launch_parallelism > 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.
-
Nick Mathewson authored
The previous algorithm had two flaws: * It would wait even after the final attempt, when there were no more retries to do. * It would fail to wait between attempts if an error occurred. This refactoring fixes both of these issues, and adds some comments.
-
Nick Mathewson authored
-
Ian Jackson authored
Refactor FallbackDir handling and implement a retry-after-delay mechanism. Closes #406 and #220 See merge request tpo/core/arti!433
-
Ian Jackson authored
Manual merge for just this branch as per tpo/core/arti!433 (comment 2791982) tpo/core/arti!433 (comment 2791993)
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-