Chutney issueshttps://gitlab.torproject.org/tpo/core/chutney/-/issues2020-06-27T13:18:34Zhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33267Prop 313: 8.1. Test IPv6 Relay Consensus Counts using Chutney2020-06-27T13:18:34ZteorProp 313: 8.1. Test IPv6 Relay Consensus Counts using ChutneyTest the IPv6 relay count script in proposal 313, using chutney networks.
Since chutney creates a limited number of relays, we also need to test these changes on consensuses from the public tor network. So we shouldn't spend much time t...Test the IPv6 relay count script in proposal 313, using chutney networks.
Since chutney creates a limited number of relays, we also need to test these changes on consensuses from the public tor network. So we shouldn't spend much time testing the script with chutney.
See proposal 313, section 8.1, chutney tests part:
https://gitweb.torproject.org/torspec.git/tree/proposals/313-relay-ipv6-stats.txt#n337Tor: 0.4.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33251Prop 312: 5.1. Test Relay IPv6 Addresses Discovery using Chutney2020-06-27T13:18:34ZteorProp 312: 5.1. Test Relay IPv6 Addresses Discovery using ChutneyTest the IPv6 ORPort Address Detection changes in proposal 312, using chutney networks.
Since chutney runs on private addresses, these tests might be difficult to write, or they might not tell us much about how tor relays behave on the ...Test the IPv6 ORPort Address Detection changes in proposal 312, using chutney networks.
Since chutney runs on private addresses, these tests might be difficult to write, or they might not tell us much about how tor relays behave on the public tor network. So we shouldn't spend much time on them.
See proposal 312, section 5.1:
https://gitweb.torproject.org/torspec.git/tree/proposals/312-relay-auto-ipv6-addr.txt#n1461Tor: 0.4.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33250Test IPv4 Address Detection using Chutney2020-06-27T13:18:34ZteorTest IPv4 Address Detection using ChutneyBefore we start making changes to tor's IPv6 code in legacy/trac#33049, we need to get IPv4 address detection tests working in chutney.
Since chutney runs on private addresses, these tests might be difficult to write, or they might not ...Before we start making changes to tor's IPv6 code in legacy/trac#33049, we need to get IPv4 address detection tests working in chutney.
Since chutney runs on private addresses, these tests might be difficult to write, or they might not tell us much about how tor relays behave on the public tor network. So we shouldn't spend much time on them.Tor: 0.4.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33232Test IPv4 Reachability using Chutney2020-06-27T13:18:34ZteorTest IPv4 Reachability using ChutneyBefore we start making changes to tor's IPv6 code in legacy/trac#33048, we need to get IPv4 reachability tests working in chutney.Before we start making changes to tor's IPv6 code in legacy/trac#33048, we need to get IPv4 reachability tests working in chutney.Tor: 0.4.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33231Prop 311: 6.3. Test Legacy Relays Accept IPv6 Extends using Chutney2020-08-14T12:40:05ZteorProp 311: 6.3. Test Legacy Relays Accept IPv6 Extends using ChutneyThis ticket depends on relay IPv6 extends in legacy/trac#33220. We may also need to disable the "Relay=3" protocol version check.
Test IPv6 extends from newer relays (which implement proposal 311) to older relays (which do not).
Althou...This ticket depends on relay IPv6 extends in legacy/trac#33220. We may also need to disable the "Relay=3" protocol version check.
Test IPv6 extends from newer relays (which implement proposal 311) to older relays (which do not).
Although proposal 311 does not create these kinds of circuits, we need to check for bugs and excessive logs in older tor versions.
See proposal 311, section 6.3:
https://gitweb.torproject.org/torspec.git/tree/proposals/311-relay-ipv6-reachability.txt#n698Tor: unspecifiedhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33228Prop 311: 6.1. Test IPv6 ORPort Reachability using Chutney2020-06-27T13:18:35ZteorProp 311: 6.1. Test IPv6 ORPort Reachability using ChutneyTest the IPv6 ORPort Reachability and Extends changes in proposal 311, using chutney networks with AssumeReachable disabled.
(Chutney currently enables AssumeReachable by default.)
See proposal 311, section 6.1:
https://gitweb.torproje...Test the IPv6 ORPort Reachability and Extends changes in proposal 311, using chutney networks with AssumeReachable disabled.
(Chutney currently enables AssumeReachable by default.)
See proposal 311, section 6.1:
https://gitweb.torproject.org/torspec.git/tree/proposals/311-relay-ipv6-reachability.txt#n671
Chutney already implements some of these tests, but we still need a fix for a bridge descriptor upload bug, see tor legacy/trac#33582 and chutney legacy/trac#33407.Tor: 0.4.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33163Update list of Tor versions in Chutney's Travis CI2020-06-27T13:18:35ZteorUpdate list of Tor versions in Chutney's Travis CI* 0.2.9 and 0.4.0 are unsupported
* 0.4.2 is stable* 0.2.9 and 0.4.0 are unsupported
* 0.4.2 is stableteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/33041Chutney error message says to use 'TOR_DIR' instead of 'CHUTNEY_TOR'2020-06-27T13:18:35ZoparaChutney error message says to use 'TOR_DIR' instead of 'CHUTNEY_TOR'When you attempt to run Chutney using a command like:
```
./chutney configure networks/basic
```
it will print the following error message if it cannot find `tor` or `tor-gencert`:
```
Cannot find the tor-gencert binary at 'tor-gencer...When you attempt to run Chutney using a command like:
```
./chutney configure networks/basic
```
it will print the following error message if it cannot find `tor` or `tor-gencert`:
```
Cannot find the tor-gencert binary at 'tor-gencert' for the command
line 'tor-gencert --create-identity-key --passphrase-fd 0 <snip>'.
Set the TOR_DIR environment variable to the directory containing
tor-gencert.
```
Chutney (the Python code) does not actually use this `TOR_DIR` environment variable (it's only used by `tools/test-network.sh` and related scripts). Instead the error message should say that the user should set the `CHUTNEY_TOR` and `CHUTNEY_TOR_GENCERT` environment variables.https://gitlab.torproject.org/tpo/core/chutney/-/issues/33023Chutney 'bootstrap-network.sh' starts a different default network flavor than...2020-06-27T13:18:35ZoparaChutney 'bootstrap-network.sh' starts a different default network flavor than listed in the usage commentsSmall documentation problem in Chutney's `bootstrap-network.sh`.
The usage comment says the following:
```
# Usage:
# tools/bootstrap-network.sh [network-flavour]
# network-flavour: one of the files in the networks directory,
# ...Small documentation problem in Chutney's `bootstrap-network.sh`.
The usage comment says the following:
```
# Usage:
# tools/bootstrap-network.sh [network-flavour]
# network-flavour: one of the files in the networks directory,
# (default: 'basic')
```
but the actual code says the following:
```
# Set the variables for the chutney network flavour
export NETWORK_FLAVOUR=${NETWORK_FLAVOUR:-"bridges+hs-v2"}
[ -n "$1" ] && { NETWORK_FLAVOUR=$1; shift; }
export CHUTNEY_NETWORK="$CHUTNEY_PATH/networks/$NETWORK_FLAVOUR"
```
As you can see, the comments say that the default network is 'basic', but the code actually starts 'bridges+hs-v2'. Reference: https://github.com/torproject/chutney/blob/5a9271104fec6c5b9bb23d2574596dc9d7c0a2c4/tools/bootstrap-network.shhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/32972Chutney doesn't remove temporary files after processing warnings2020-06-27T13:18:35ZoparaChutney doesn't remove temporary files after processing warningsWhen the Chutney test-network script ends, it displays warnings from the tor logs. It summarizes/filters them in the `show_warnings()` function in `tools/warnings.sh`. This function creates two files with `LOGS=$(mktemp)` and `FILTERED_L...When the Chutney test-network script ends, it displays warnings from the tor logs. It summarizes/filters them in the `show_warnings()` function in `tools/warnings.sh`. This function creates two files with `LOGS=$(mktemp)` and `FILTERED_LOGS=$(mktemp)` but never deletes them when it's done.
The proposal is to add `rm "${LOGS}" "${FILTERED_LOGS}"` at the end of the function.https://gitlab.torproject.org/tpo/core/chutney/-/issues/32969Chutney 'bootstrap-network.sh' shouldn't overwrite 'CHUTNEY_DATA_DIR'2020-06-27T13:18:35ZoparaChutney 'bootstrap-network.sh' shouldn't overwrite 'CHUTNEY_DATA_DIR'When you set up a tor network with something like:
```
tools/test-network.sh --flavor basic --net-dir /tmp/chutney-net
```
the `tools/test-network.sh` script will set `$CHUTNEY_DATA_DIR` based on the value of `--net-dir` and then call ...When you set up a tor network with something like:
```
tools/test-network.sh --flavor basic --net-dir /tmp/chutney-net
```
the `tools/test-network.sh` script will set `$CHUTNEY_DATA_DIR` based on the value of `--net-dir` and then call `tools/bootstrap-network.sh`. This bootstrapping script will then overwrite the variable `$CHUTNEY_DATA_DIR` if that directory doesn't exist or if the path is relative. This causes unexpected behavior when the user explicitly sets the `--net-dir` option. For example, Chutney works fine if you provide it with a directory that doesn't exist (it will create that directory automatically), so there is no need for the `tools/bootstrap-network.sh` script to unexpectedly change it to `$CHUTNEY_PATH/net`. The `tools/bootstrap-network.sh` also does not need to change it to an absolute path since Chutney [does this automatically](https://github.com/torproject/chutney/blob/master/lib/chutney/TorNet.py#L144).
My suggestion is to remove the following lines from `tools/bootstrap-network.sh`:
```
# Get a working net path
if [ ! -d "$CHUTNEY_DATA_DIR" ]; then
# looks like a broken path: use the chutney path as a base
export CHUTNEY_DATA_DIR="$CHUTNEY_PATH/net"
fi
if [ -d "$PWD/$CHUTNEY_DATA_DIR" ]; then
# looks like a relative path: make chutney path absolute
export CHUTNEY_DATA_DIR="$PWD/$CHUTNEY_DATA_DIR"
fi
```https://gitlab.torproject.org/tpo/core/chutney/-/issues/32820Move the chutney pypy jobs to 0.4.2 xenial2020-06-27T13:18:36ZteorMove the chutney pypy jobs to 0.4.2 xenialTor master will soon be unsupported on Travis xenial, because Travis xenial only has OpenSSL 1.1.0. (See legacy/trac#31820.)
So we need to move the pypy jobs to Tor 0.4.2 xenial, because pypy isn't packaged for Travis Bionic yet.Tor master will soon be unsupported on Travis xenial, because Travis xenial only has OpenSSL 1.1.0. (See legacy/trac#31820.)
So we need to move the pypy jobs to Tor 0.4.2 xenial, because pypy isn't packaged for Travis Bionic yet.teorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/32775Remove 0.2.9 from chutney's CI2020-06-27T13:18:36ZteorRemove 0.2.9 from chutney's CIOn 1 January 2020, we won't be supporting 0.2.9 any more.On 1 January 2020, we won't be supporting 0.2.9 any more.https://gitlab.torproject.org/tpo/core/chutney/-/issues/32758Travis: Update the macOS image for chutney2020-06-27T13:18:36ZteorTravis: Update the macOS image for chutneyteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/32757Travis: Update the pypy builds for chutney2020-06-27T13:18:36ZteorTravis: Update the pypy builds for chutneyNow we know how to get pypy 2 and 3 in xenial on Travis, we should do it for chutney.Now we know how to get pypy 2 and 3 in xenial on Travis, we should do it for chutney.teorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/32731Add __future__ imports to every chutney python file2020-06-27T13:18:36ZteorAdd __future__ imports to every chutney python fileTo make extra sure any changes to our python 2.7 code are compatible with python 3, we should add `__future__` imports to every chutney python file.To make extra sure any changes to our python 2.7 code are compatible with python 3, we should add `__future__` imports to every chutney python file.teorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/32721Allow chutney users to disable tor's sandbox at runtime2020-07-14T22:24:30ZteorAllow chutney users to disable tor's sandbox at runtimeIn legacy/trac#32240, we discovered that tor's sandbox doesn't work on recent Ubuntu versions. So we need to disable the sandbox on those CI jobs.
One good way to implement this change, is by making it a first-class chutney feature.In legacy/trac#32240, we discovered that tor's sandbox doesn't work on recent Ubuntu versions. So we need to disable the sandbox on those CI jobs.
One good way to implement this change, is by making it a first-class chutney feature.teorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/32631Chutney Travis: Use the latest dependencies2020-06-27T13:18:36ZteorChutney Travis: Use the latest dependenciesUse the latest dependencies in Chutney Travis:
* Linux and macOS images
* tor versions
* python versionsUse the latest dependencies in Chutney Travis:
* Linux and macOS images
* tor versions
* python versionsteorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/32630Chutney Travis: Make chutney work on Bionic images2020-06-27T13:18:36ZteorChutney Travis: Make chutney work on Bionic imagesIf we fix legacy/trac#32240 in Tor, we should do the same thing for Chutney's Travis config.If we fix legacy/trac#32240 in Tor, we should do the same thing for Chutney's Travis config.teorteorhttps://gitlab.torproject.org/tpo/core/chutney/-/issues/30928macOS Travis Homebrew cache has expired, failing some builds2020-06-27T13:18:37ZteormacOS Travis Homebrew cache has expired, failing some buildsThe Homebrew cache in the Travis macOS image has expired (or desynced), failing our chutney and stem builds:
```
Tapped 0 formulae (172 files, 244.5KB)
Error: Your Homebrew is outdated. Please run `brew update`.
Error: Kernel.exit
```
ht...The Homebrew cache in the Travis macOS image has expired (or desynced), failing our chutney and stem builds:
```
Tapped 0 formulae (172 files, 244.5KB)
Error: Your Homebrew is outdated. Please run `brew update`.
Error: Kernel.exit
```
https://travis-ci.org/torproject/stem/jobs/547493246#L87
https://travis-ci.org/torproject/chutney/jobs/548092876#L95
Our tor builds don't fail, but they aren't running shellcheck on macOS any more. That's probably ok.
```
Tapped 0 formulae (172 files, 244.5KB)
Error: Your Homebrew is outdated. Please run `brew update`.
Error: Kernel.exit
```
https://travis-ci.org/torproject/tor/jobs/547856188#L104
There should be a shellcheck here:
```
sfcgal 1.3.5
sqlite 3.24.0
```
https://travis-ci.org/torproject/tor/jobs/547856188#L182
There should be a result here:
```
if command -v shellcheck; then \
find "." -name "*.sh" -not -path "./src/ext/*" -exec shellcheck {} +; \
if [ -d "./scripts/test" ]; then \
shellcheck ./scripts/test/cov-diff ./scripts/test/coverage; \
fi; \
if [ -e "./contrib/dirauth-tools/nagios-check-tor-authority-cert" ]; then \
shellcheck "./contrib/dirauth-tools/nagios-check-tor-authority-cert"; \
fi; \
if [ -e "./contrib/client-tools/torify" ]; then \
shellcheck "./contrib/client-tools/torify"; \
fi; \
if [ -d "./scripts/git" ]; then \
shellcheck ./scripts/git/*.git-hook; \
fi; \
fi
```
https://travis-ci.org/torproject/tor/jobs/547856188#L3149
We can fix this in a few different ways:
1. make shellcheck optional in the chutney and stem Travis CI
* it will run on Linux, but not macOS. That's ok.
2. add the `update: true` key to our Travis macOS builds
* https://docs.travis-ci.com/user/installing-dependencies/#installing-packages-on-macos
* a full update makes macOS builds slower, so we should open a ticket to eventually remove it
3. allow_failure on the chutney and stem macOS Travis jobs
* https://docs.travis-ci.com/user/build-matrix/#rows-that-are-allowed-to-failAlexander Færøyahf@torproject.orgAlexander Færøyahf@torproject.org