| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
| |
config
* build shadowtools python package in `build-shadow` job
* install the shadowtools python package in python3-checks, so that
usage can be checked with mypy.
* integration-e2e-shadow: generate typed shadow config
|
| | |
|
| |
|
|
|
| |
This keeps everything together and avoids clobbering previous artifacts,
since chutney already creates a unique nodes dir in every run.
|
| |
|
|
|
|
| |
This makes the chutney network configuration available *before* we
generate the shadow config file, which we need in order to generate
multi-host networks.
|
| |
|
|
|
|
| |
This is in preparation to move the init step outside of the shadow
simulation in integration-e2e-shadow (while leaving the bootstrap step
inside the shadow simulation).
|
| |
|
|
|
|
|
| |
This is in preparation to diverge somewhat. In particular, we want to do
some of the configuration and setup from *outside* of shadow, so that
we can generate shadow configs that take the chutney network
configuration into account.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the chutney bump in the previous commit alone, we hit arti#2463
consistently.
According to the spec, a hidden service using vanguards-lite needs 2
guards and 4 vanguards
<https://spec.torproject.org/vanguards-spec/index.html>.
All 6 of those relays need to be Fast and Stable.
At least the 2 guards also need to be Measured. (Probably the 4
vanguards too, but I haven't verified).
authority relays are never considered Measured. Prior to the chutney
bump, none of the relays were, but since chutney!142, we create a
bandwidth file to ensure the non-authorities *are* Measured, and will
get the Fast flag. (IIUC, tor doesn't apply the bandwidth measurements
to authorities). Maybe the presence of *some* measured relays gets us
out of some fallback path that was getting used before to allow
unmeasured relays?
Adding the additional relays seems to fix the issue.
|
| |
|
|
|
|
|
| |
shadow's default behavior of spin-looping is bad behavior in a shared
environment.
This is already disabled in integration-shadow.
|
| |
|
|
|
|
| |
In CI, shadow's default behavior of pinning to CPU cores can result in
multiple instances of shadow fighting over the same CPU cores instead of
using idle ones.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These were originally blindly copied over from shadow's own integration
test.
The relatively low BandwidthRate and BandwidthBurst rates in particular
could cause overload in heavily-used relays given the amount of traffic
we're trying to push through the network simultaneously from different
clients.
I'm not aware of a specific problem the other parameters might cause,
but it seems better not to have them without some concrete reason.
Motivated while debugging arti#2399; we hypothesize that the bandwidth
limits + bad luck of many circuits trying to use one relay at once could
be a contributing factor.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| | |
chutney test: include arti-extra bin
See merge request tpo/core/arti!3772
|
| | |
| |
| |
| |
| | |
Test the arti-extra bin, which includes most of `full` and
`experimental` features, too.
|
| | | |
|
| | |
| |
| |
| |
| | |
The default has been increased to 300, so there's no need to override it
here.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This will give us a bit more flexibility, e.g. to pass additional
arguments.
Now that the python linters understand it, we fix some linting issues.
We preserve the ability to run the test on other networks by making the
Config.network optional. The new default of `None` means to use the
built-in module to create the network.
The functionality of the test itself is the same.
|
| |\ \
| |/
|/|
| |
| | |
shadow ci: keep going after first failure
See merge request tpo/core/arti!3766
|
| | |
| |
| |
| | |
It can be useful to see the outcome of the other tests/analysis.
|
| | |
| |
| |
| |
| | |
This helps avoid subtle mismatches of the sort fixed in the previous
commit.
|
| |/
|
|
|
| |
We were accidentally using the arti-bin command-line arg to also
override arti-bench-bin.
|
| | |
|
| |
|
|
| |
Everything now uses the json version, instead.
|
| | |
|
| | |
|
| |
|
|
|
| |
No particular need to separate them, and the merged version is easier to
follow.
|
| |
|
|
|
|
| |
This organizes the code a bit better and gives nicer output. It also
separates individual test cases and subcases, continuing to try to
complete other tests when one fails instead of exiting.
|
| | |
|
| |
|
|
|
|
|
| |
chutney replaced Node.socksport (a single optional port) with
Node.socksport_endpoints (a sequence of bound addresses and ports).
Update for compatibility, and test all of the exposed endpoints where
relevant.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Gets rid of shelling out to jq. We could also accomplish that with the
json module, but this way also gives us:
* Better error detection and handling. In particular this lets mypy
statically detect trying to access fields of the wrong name or type.
It will also make it easier to bump to the latest chutney, which has
replaced `socksport` with `socksport_endpoints`, which would be more
difficult to work with as json, especially via `jq`.
|
| | |
|
| | |
|
| |
|
|
|
| |
This is primarily a proof-of-concept for converting these scripts before
tackling the more complext 'test' script.
|
| | |
|
| |
|
|
|
| |
In particular, use `str` instead of `Path`, so that it's directly
encodable and decodable by the json module.
|
| | |
|
| |
|
|
|
|
| |
Previously this was naively wrapping strings in double-quotes. This
works ok for escaping internal whitespace, but doesn't escape other
special characters.
|
| |
|
|
| |
Bump chutney, and migrate to CLI changes introduced in chutney!101
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
tgen aborts a stream and starts the next one when the "stallout" timeout
is reached. In some cases the arti (or tor) client just needs a bit more
time to establish a connection to the hidden service.
A potential downside is that if a single stream "stalls" forever without
an explicit error, tgen will never give up on it, and thus never try any
more streams. We can worry about that if and when we see it though; and
it would indicate a likely bug since the known clients and servers in
this test shouldn't stall indefinitely in this way.
|
| |
|
|
|
|
|
| |
None of the failures currently recorded in
https://gitlab.torproject.org/tpo/core/arti/-/issues/2209 involve the
c-tor client. I think we can safely require all xfers to succeed for the
c-tor client.
|
| |
|
|
|
|
|
|
| |
From 9/10 to 5/10.
This is to mitigate flakiness.
See
https://gitlab.torproject.org/tpo/core/arti/-/issues/2209#note_3295789
|
| |
|
|
| |
Having this all on one line makes it easier to read.
|
| |
|
|
| |
Now that we no longer echo these, this is useful.
|