summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge branch 'bytemuck-update' into 'main'Ian Jackson2024-07-311-2/+2
|\ | | | | | | | | Update bytemuck to 1.16.3; previous version was yanked. See merge request tpo/core/arti!2294
| * Update bytemuck to 1.16.3; previous version was yanked.Nick Mathewson2024-07-311-2/+2
|/
* Merge branch 'sqlite-race' into 'main'gabi-2502024-07-312-9/+62
|\ | | | | | | | | | | | | tor-dirmgr: Return an error if storage is readonly and DB is missing/incompatbile. Closes #1497 See merge request tpo/core/arti!2283
| * tor-dirmgr: Replace from_conn impl with a call to from_conn_internal helper.Gabriela Moldovan2024-07-301-7/+16
| |
| * tor-dirmgr: Return an error if storage is readonly and DB is ↵Gabriela Moldovan2024-07-302-14/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | missing/incompatbile. This fixes a bug in `SqliteStore`'s constructor: previously, it would unconditionally try to create the missing database, even if it didn't have write access. As a result, it was impossible to reliably start multiple concurrent arti processes configured with the same (empty or nonexistent) cache_dir, because many of them would fail with errors such as ``` attempt to write a readonly database: Error code 8: Attempt to write a readonly database ``` Returning a `LocalResourceAlreadyInUse` error kind here enables us to leverage the retry loop from `TorClientBuilder::create_unbootstrapped` (which retries on local resource errors if `local_resource_timeout` is set). Closes #1497
* | Merge branch 'cli-tests' into 'main'gabi-2502024-07-3134-0/+491
|\ \ | | | | | | | | | | | | | | | | | | arti: Add tests for the hss/hsc subcomands Closes #1250 See merge request tpo/core/arti!2275
| * | CI: Add TODOs about rethinking matrix_test.Gabriela Moldovan2024-07-301-0/+9
| | | | | | | | | | | | Prompted by https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/2275#note_3054040
| * | editorconfig: Ignore the files from the test state dirs.Gabriela Moldovan2024-07-301-0/+8
| | |
| * | arti: Add tests for the arti hsc subcommand.Gabriela Moldovan2024-07-3020-0/+146
| | |
| * | CI: Add cli-test job.Gabriela Moldovan2024-07-301-0/+11
| | |
| * | arti: Add tests for the arti hss subcommand.Gabriela Moldovan2024-07-3013-0/+317
| |/ | | | | | | Closes #1250
* | Merge branch 'rtmock-doc' into 'main'Ian Jackson2024-07-301-3/+20
|\ \ | | | | | | | | | | | | tor-rtmock docs: Improve discussions of mocked time See merge request tpo/core/arti!2286
| * | tor-rtmock docs: Add some more discussion of the simulated timeIan Jackson2024-07-301-1/+17
| | |
| * | tor-rtmock docs: We have CoarseTimeProvider nowIan Jackson2024-07-301-2/+3
| |/ | | | | | | Improve/replace some out-of-date notes in the docs.
* | Merge branch 'forbid-path-exists' into 'main'Ian Jackson2024-07-306-11/+19
|\ \ | |/ |/| | | | | | | | | clippy: Disallow Path::exists(). Closes #1493 See merge request tpo/core/arti!2293
| * arti: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-1/+1
| |
| * tor-dirmgr: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-1/+1
| |
| * fs-mistrust: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-2/+2
| |
| * tor-keymgr: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-3/+10
| |
| * fslock-guard: Use Path::try_exists() instead of Path::exists().Gabriela Moldovan2024-07-301-4/+4
| |
| * clippy: Disallow Path::exists().Gabriela Moldovan2024-07-301-0/+1
|/ | | | Part of #1493
* Merge branch 'pin' into 'main'David Goulet2024-07-291-31/+43
|\ | | | | | | | | CI: Pin Rust compiler version (mostly) See merge request tpo/core/arti!2290
| * CI: Rename "latest" jobs to "recent"; pin them; and replace them.Ian Jackson2024-07-291-10/+30
| | | | | | | | | | | | | | | | | | | | | | We replace uses of `amd64/rust:bookworm` in the `recent-*` jobs. We add new latest-* jobs which * aren't used for artifacts * occur later in the pipeline * only run on main, since we don't want them to block MRs This is done with templates, to reuse the script parts.
| * CI: Use RECENT_RUST_IMAGE instead of unpinned Rust, in most jobsIan Jackson2024-07-291-21/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace almost all the open-coded occurrences of `amd64/rust:bookworm`. This rewinds us to Rust 1.79. We can update after https://github.com/rustsec/rustsec/issues/1217 is fixed upstream. We're going to handle the rust-latest-* jobs specially. There are still a few other images that look, from the name, like they might be uncontrolled inputs into our CI, but they don't look risky. Let's leave them for now.
| * CI: Introduce RECENT_RUST_IMAGE variableIan Jackson2024-07-291-1/+4
| | | | | | | | So far only used by the cargo-audit job.
* | Merge branch 'circuit-reactor-tests' into 'main'Jim Newsome2024-07-292-96/+45
|\ \ | |/ |/| | | | | Circuit reactor test cleanup See merge request tpo/core/arti!2287
| * tor-proto::circuit: Move test-only methods into test moduleJim Newsome2024-07-291-12/+14
| |
| * tor-proto circuit tests: dedupe circid magic numberJim Newsome2024-07-291-6/+15
| |
| * tor-proto circuit test: Move to tighter scope and shadow outer defJim Newsome2024-07-291-15/+17
| |
| * tor-proto circuit tests: delete stale commented-out testJim Newsome2024-07-291-66/+0
| |
| * tor-proto circuit tests: fix some comment copy-pastaJim Newsome2024-07-291-1/+1
| |
| * circuit reactor: add comment pointing to tests in other moduleJim Newsome2024-07-291-1/+3
|/
* Merge branch 'audit' into 'main'gabi-2502024-07-292-2/+2
|\ | | | | | | | | Use a pinned compiler version to run cargo audit See merge request tpo/core/arti!2289
| * Bump our CI Rust build cache tokenIan Jackson2024-07-291-1/+1
| | | | | | | | | | | | This invalidates the cache. This may not be strictly necessary, but it will make sure that the new pinned image is used in the CI run *for this MR*.
| * Use a pinned compiler version to run cargo auditIan Jackson2024-07-291-1/+1
|/ | | | | | | | | | | | | | | | | | This avoids CI failures like this https://gitlab.torproject.org/nickm/arti/-/jobs/617654 arising from situations like this cargo-audit install fails with rust 1.80 https://github.com/rustsec/rustsec/issues/1217 error[E0282]: type annotations needed for Box<_> https://github.com/time-rs/time/issues/693 IMO we should pin many of the other images too but I suspect that may be controversial. I'm hoping that pinning this one to get CI working is uncontroversial (perhaps only on a temporary basis). The other way to solve this would be to remove --locked which IMO is going in the wrong direction, by exposing us to more rather than fewer uncontrolled inputs from our upstreams.
* Merge branch 'new-nightly-warnings' into 'main'Ian Jackson2024-07-296-6/+7
|\ | | | | | | | | Fix new warnings from nightly clippy See merge request tpo/core/arti!2288
| * Mark a struct as allowed-to-be-unused.Nick Mathewson2024-07-281-0/+1
| | | | | | | | | | (This will either become used later, or we will remove it; the TODO RPC will remind us.)
| * Fix "clippy::manual-pattern-char-comparison" warning on nightlyNick Mathewson2024-07-282-2/+2
| | | | | | | | | | | | | | This warning suggests using `[a,b]` as a Pattern when it sees a search for `|ch| ch == a || ch == b`. (All of our supported rust versions allow this kind of Pattern.)
| * Fix new "clippy::needless-maybe-sized" warning on nightlyNick Mathewson2024-07-283-4/+4
|/ | | | | This warning complains when we say `where T: SomeTrait + ?Sized` when `SomeTrait` is inherently Sized.
* Merge branch 'rpclib-i64-id' into 'main'David Goulet2024-07-251-3/+2
|\ | | | | | | | | rpclib: Use i64 rather than u64 for request IDs. See merge request tpo/core/arti!2279
| * rpclib: Use i64 rather than u64 for request IDs.Nick Mathewson2024-07-221-3/+2
| | | | | | | | This makes it conform to the spec and match arti-rpcserver.
* | Merge branch 'rpcbase-cleanup' into 'main'Nick Mathewson2024-07-2517-294/+237
|\ \ | | | | | | | | | | | | rpcbase: Fix most TODO RPC comments. See merge request tpo/core/arti!2284
| * | rpc: Remove special conversion for SendUpdateError.Nick Mathewson2024-07-252-10/+6
| | |
| * | rpc: Rename the error codes for something like consistency.Nick Mathewson2024-07-256-24/+25
| | |
| * | rpc: Remove RpcError data field and use ReportNick Mathewson2024-07-257-128/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Per discussion, this field isn't really specified in a way that lets us fill it sensibly at the moment. So for now, we're going to just omit it. Additionally, we said that we'd Report on our errors; this branch changes the implementation of RpcError to do that. Question: Will the blanket implementation for Into<RpcError> make it harder to re-add a Data field later on if we want to do so?
| * | rpc: Refactor errors part 1: a new RpcMethod trait.Nick Mathewson2024-07-259-56/+49
| | | | | | | | | | | | | | | It is no longer necessary to say, for every RPC method, that its error type is RpcError.
| * | rpcbase: remove now-unused invoke methodsNick Mathewson2024-07-252-71/+34
| | | | | | | | | | | | | | | | | | | | | These methods were defined on DispatchTable, and then replaced by top-level functions in the crate. (The reason for using top-level functions instead is so that we get the locking on the dispatch table correct.)
| * | rpcbase: Remove a TODO RPC about duplicationNick Mathewson2024-07-251-1/+0
| | | | | | | | | | | | | | | The duplication is only a few lines. I've looked into a couple of ways for removing it, but they make the code flow even less clear.
| * | rpcbase: Replace a TODO with a set of notes and caveatsNick Mathewson2024-07-252-7/+45
| | | | | | | | | | | | | | | | | | We have decided not to remove the "anybody can define methods" property. This commit documents the consequences, and warns extenders away from some really bad ideas.
| * | rpc: remove TODO about adding an extension traitNick Mathewson2024-07-251-4/+0
| | | | | | | | | | | | | | | These functions are called rarely enough that it is probably okay for the ergonomics to be a bit verbose.