| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
ci-check-msrv: Add check for MSRV
See merge request tpo/core/arti!3405
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Checks if each crate has rust-version property in Cargo.toml.
|
| |\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
tor-dirserver: Refactor cons retrieval with JOIN
See merge request tpo/core/arti!3436
|
| | | |_|/ / / / /
| |/| | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
This commit refactors `get_recent_consensus()` in `tor-dirserver` to use
a single SQL statement with the power of `INNER JOIN` instead of two SQL
statements querying the store after retrieving the SHA256 hash.
The primary motivation for this is to have cleaner code.
A single SQL statement is often-times easier to comprehend, as well more
performant in execution, although that can only be proven with a
profiler and is not of much concern, given that this function is only
executed roughly every 60-90min.
|
| |\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Tweak bad_extend_test_impl and its users for reliability and useful errors.
See merge request tpo/core/arti!3433
|
| | | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Possible fix for #2232.
|
| | |/ / / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Unlike assert!(matches!(..)), assert_matches prints the value of the
expression on a failure.
Probably we should use this macro more widely in the future.
This might help diagnose recurrences of #2232
|
| |\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Exclude vim *.swp files in .gitignore
See merge request tpo/core/arti!3437
|
| | |/ / / / / / / |
|
| |\ \ \ \ \ \ \ \
| |/ / / / / / /
|/| | | | | | |
| | | | | | | |
| | | | | | | | |
shadow CI: increase success threshold for onion svc xfers
See merge request tpo/core/arti!3428
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
It looks like the reliability has increased at some point. Let's ratchet
up the required-success threshold to avoid silent regression.
See
<https://gitlab.torproject.org/tpo/core/arti/-/issues/2109#note_3278828>
|
| |/ / / / / / / |
|
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
CI: bump shadow commit
See merge request tpo/core/arti!3431
|
| | | | | | | | | |
|
| |/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Workaround for arti#2240, though doesn't hurt to be more explicit in
general.
This bug wasn't triggered in versions of shadow before
<https://github.com/shadow/shadow/issues/3659> was fixed - shadow's
implementation of `statx` and other syscalls incorrectly behaved as if the
`AT_EMPTY_PATH` were set.
|
| |\ \ \ \ \ \ \
| |_|/ / / / /
|/| | | | | |
| | | | | | |
| | | | | | | |
Replace copy_interactive with futures-copy.
See merge request tpo/core/arti!3416
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This change lets us avoid spawning extra tasks (due to one-direction
nature of copy_interactive), and avoid some lock contention (due to
use of AsyncReadExt::split).
Addresses part of #786.
|
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
ci: Container image downgrade and comment fix for 'cargo-miri' job
See merge request tpo/core/arti!3419
|
| |/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This downgrades the container image for the 'cargo-miri' job, and
updates some adjacent comments.
|
| |\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
doc: Update dependencies
See merge request tpo/core/arti!3417
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
```text
warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
--> crates/arti/tests/cli_tests/hsc.rs:26:28
|
26 | let mut cmd = Command::cargo_bin("arti").unwrap();
| ^^^^^^^^^
|
= note: `#[warn(deprecated)]` on by default
```
|
| | | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
```bash
cargo update generic-array --precise 0.14.7
```
See https://gitlab.torproject.org/tpo/core/arti/-/issues/2234
and https://github.com/RustCrypto/traits/issues/2036.
|
| | | | | | | | | |
|
| | |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
For building openssl.
This was required by some recent openssl version, but I just noticed it
now.
|
| |\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | |
| | | | | | |
| | | | | | | |
ci: Upgrade container versions
See merge request tpo/core/arti!3418
|
| | | | | | | | |
|
| |/ / / / / / |
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
proto: Add a new CircSyncView type
See merge request tpo/core/arti!3414
|
| | | | | | | | |
|
| | | | | | | | |
|
| |/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This will replace ClientCircView in the IncomingStreamRequestFilter
APIs, which will enable us to use IncomingStreamRequestFilter for
incoming streams on the exit side too.
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
tor-dirserver: Start working on mirror operation
See merge request tpo/core/arti!3301
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit changes various things in the dirmirror operation, namely
the use of a SystemTime wrapper type that provides saturation on both
ends.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit adds `CHECK` constraints to the database schema in order to
ensure all timestamps are positive.
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This reverts commit d37824953f9c530c57c8c5936c12b16a829778c3.
Unfortunately, this merge request introduces futures-lite again into the
Cargo.lock generated by maint/downgrade_dependencies. Without this, it
once again caused the same failures in async-fs and
async-global-executor, that were previously fixed before the
above commit landed into main.
This bug is apparently not reproducible on current git main, because the
downgraded Cargo.lock lacks respective dependencies that get
transitively introduced by this (arti!3301) merge request.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit makes the entire database operations synchronous, thereby
replacing deadpool with r2d2.
The full motivation is outlined in a rustdoc comment at the top of the
`database` module, but it can be summarized to the fact that SQLite is
by design inherently synchronous due to directly interfacing with the
file system.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit creates a function named `mirror::operation::serve`, that
will serve as the primary entry point for the dirmirror operation.
While the function itself already contains some logic, such as querying
the timeout to wait for the next consensus, it is largely a rustdoc
design document that adds lots of comment to the `mirror::operation`
module.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit starts work in the `mirror::operation` module by
implementing the functions for calculating the `Duration` to wait from a
given `SystemTime` until the point in time when the dirmirror should
download new documents from the authorities again.
Also, this commit introduces new error types and internal helper
functions in order to fulfill this purpose better.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit does a large overhaul in the overall way on how we interact
with SQLite.
Although SQLite is a fairly straightforward tool, it has one large
caveat, namely the handling of the infamous `SQLITE_BUSY` error.
In WAL mode, the journaling mode we are using, the respective error may
occur if there is an existing write transaction while another thread is
trying to either upgrade an existing read transaction or create an
exclusive transaction at the same time. In this case, SQLite will fail
at the statement that either requires the write operation or at the
creation of the transaction respectively.
In order to tackle this problem, SQLite provides the `busy_timeout`
pragma, which allows specifying a timeout in milliseconds during which
SQLite will retry to obtain a write transaction or fail immediately.
This only works in the latter case, that is, creating a write
transaction from the beginning.
To solve this issue, we introduce two new functions:
1. `database::read_tx`
2. `database::rw_tx`
Both functions accept a database pool alongside a closure accepting a
`Transaction` and returning an arbitrary return value.
The first function creates a deferred transaction that gets rolled-back
in the end, making it suitable for read-only connections.
The latter function creates an exclusive transaction that gets committed
in the end, making it suitable for read-write connections. This also
honors the `busy_timeout`, i.e. the function retries for up to 1s to
acquire a write transaction before failing ultimately.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This commit introduces the no-op sql macro used to mark string literals
as SQL statements. It is purely semantical and serves the purpose to
quickly identify string literals as SQL statements.
|
| |/ / / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This commit introduces the `mirror` module which is fairly boilerplate
at the moment. However, everything of it is very well documented using
rustdoc, thereby more or less creating a design document.
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
maint: Remove all semver.md files after 1.7.0 release
See merge request tpo/core/arti!3415
|
| |/ / / / / / |
|
| |\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
arti-client: Update `ARTI_CLIENT_RELEASE_DATE`
See merge request tpo/core/arti!3413
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
```bash
./maint/update-release-date
```
|
| |\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | |
| | | | | | |
| | | | | | | |
maint: Bump minor versions of all published crates
See merge request tpo/core/arti!3412
|
| | | | | | | | |
|
| | | | | | | | |
|