Commit Graph

2121 Commits

Author SHA1 Message Date
Jane Lusby 2adee7b31a deduplicate match arms in handle_client_request 2021-02-19 14:11:35 -08:00
Jane Lusby cfc4717b98 rename transitions from Exit to Close 2021-02-19 14:11:35 -08:00
teor 5e4bf804aa Remove remaining references to fail_with 2021-02-19 14:11:35 -08:00
teor e06705ed81 Only reject pending client requests when the peer has errored
- Add an `ExitClient` transition, used when the internal client channel
  is closed or dropped, and there are no more pending requests
- Ignore pending requests after an `ExitClient` transition
- Reject pending requests when the peer has caused an error
  (the `Exit` and `ExitRequest` transitions)
- Remove `PeerError::ConnectionDropped`, because it is now handled by
  `ExitClient`. (Which is an internal error, not a peer error.)
2021-02-19 14:11:35 -08:00
teor 9d9734ea81 rustfmt 2021-02-19 14:11:35 -08:00
Jane Lusby 5ec8d09e0d accidental drop on mustusesender 2021-02-19 14:11:35 -08:00
Jane Lusby 6906f87ead introduce Transition enum 2021-02-19 14:11:35 -08:00
Jane Lusby e6cb20e13f leverage return value for propagating errors 2021-02-19 14:11:35 -08:00
Alfredo Garcia bae49e54df
Disable unreliable `sync_large_checkpoints_testnet` (#1789)
* delete `sync_large_checkpoints_testnet`
2021-02-19 21:40:01 +00:00
teor d4915c18e7
Fix inverted was_killed logic (#1779)
Also improve the error messages and code structure.
2021-02-20 06:26:00 +10:00
teor b0bc4a79c9 Disable conflict failure cleanup on macOS 2021-02-20 06:22:11 +10:00
teor af12f20732 Re-enable macOS conflict tests
We disabled these tests pending #1613. But the comment incorrectly said
we were waiting for #1631.
2021-02-20 06:22:11 +10:00
dependabot[bot] 7bba67d97b build(deps): bump thiserror from 1.0.23 to 1.0.24
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.23 to 1.0.24.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.23...1.0.24)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-19 14:54:40 -05:00
Pili Guerra 9e6db31db0
Add Usability Testing Plan template to the list of issue templates (#1519) 2021-02-19 10:53:11 +01:00
teor a445cfbd55
Set ZEBRA_SKIP_NETWORK_TESTS using Windows syntax (#1782)
Use Powershell syntax to set ZEBRA_SKIP_NETWORK_TESTS on Windows.

Also skip the entire large sync test step on Ubuntu and
Windows, because the tests are skipped anyway due to
ZEBRA_SKIP_NETWORK_TESTS. This saves some 
compilation time.
2021-02-19 19:36:32 +10:00
teor 535e9d0234
Disable failing docs workflow (#1787) 2021-02-19 19:35:46 +10:00
Alfredo Garcia 1b1185518e
remove fail-fast from test job (#1776) 2021-02-19 18:04:01 +10:00
Alfredo Garcia a9e4768d35 remove fail-fast from test job 2021-02-19 18:03:07 +10:00
teor c51fd688ee Skip node2.is_running() on Windows
`node2.is_running()` can return `true` on Windows, even though `node2`
has logged a panic. This cleanup code only runs if `node2` fails to panic
and exit as expected. So it's ok for us to skip it.

See #1781 for details.
2021-02-19 18:03:07 +10:00
teor 631fe22422 Fix conflict test node termination
On Windows, if a process is killed after it is dead, it returns `true`
for `was_killed`. Instead, check if the process is running before killing
it.

Also make the section where processes are running as short as possible,
and include context for both processes in every error.
2021-02-19 18:03:07 +10:00
Deirdre Connolly 7665c6792e Fix the yaml indentation for the docs.yml workflow
Gotta love yaml.
2021-02-18 22:50:48 -05:00
dependabot[bot] f19ef44493 build(deps): bump tracing from 0.1.23 to 0.1.24
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.23 to 0.1.24.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.23...tracing-0.1.24)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-18 22:21:49 -05:00
teor bcb9cead88
Kill running acceptance test nodes on error (#1770)
And show the output from those nodes.

These changes help us diagnose errors that happen while one or more
acceptance test nodes are running.
2021-02-19 06:46:27 +10:00
teor e61b5e50a2
Diagnostics for CI port conflict failures (#1766)
Log a "Trying..." message before each listener opens, to see if the
delay is inside Zebra, or in the test harness or OS.

Also report the configured and actual ports where possible, for better
diagnostics.
2021-02-18 12:15:09 -03:00
teor 5424e1d8ba
Fix candidate set address state handling (#1709)
Design:
- Add a `PeerAddrState` to each `MetaAddr`
- Use a single peer set for all peers, regardless of state
- Implement time-based liveness as an `AddressBook` method, rather than
  a `PeerAddrState` variant
- Delete `AddressBook.by_state`

Implementation:
- Simplify `AddressBook` changes using `update` and `take` modifier
  methods
- Simplify the `AddressBook` iterator implementation, replacing it with
  methods that are more obviously correct
- Consistently collect peer set metrics

Documentation:
- Expand and update the peer set documentation

We can optimise later, but for now we want simple code that is more
obviously correct.
2021-02-18 11:18:32 +10:00
teor 579bd4a368
Retry DNS resolution on failure (#1762)
Otherwise, a transient DNS failure makes the node hang.
2021-02-18 07:09:02 +10:00
teor 86169f6412
Update PeerSet metrics after every change (#1727) 2021-02-18 07:06:59 +10:00
teor 972103d797 Fix tracing macro syntax 2021-02-17 11:09:22 -05:00
teor 253d1c02b3 Make sync logging a bit less verbose
And tweak some log content
2021-02-17 11:09:22 -05:00
teor 8d1c498234 Log initial peer connection failures
And standardise another log message
2021-02-17 09:21:53 -05:00
teor 1ef836abb9 Add a missing Sync bound 2021-02-17 09:03:09 -05:00
teor 090afb9d4c Ignore clippy lints on copied code 2021-02-17 09:03:09 -05:00
teor 47084ea85e Wake waiting tower-batch tasks on drop
When other tower-batch tasks drop, wake any tasks that are waiting for
a semaphore permit. Otherwise, tower-batch can hang.

We currently pin tower in our workspace to:
d4d1c67 hedge: use auto-resizing histograms (tower-rs/tower#484)

Copy tower/src/semaphore.rs from that commit, to pick up
tower-rs/tower#480.
2021-02-17 09:03:09 -05:00
dependabot[bot] 76e4b8f693 build(deps): bump tracing-futures from 0.2.4 to 0.2.5
Bumps [tracing-futures](https://github.com/tokio-rs/tracing) from 0.2.4 to 0.2.5.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-futures-0.2.4...tracing-futures-0.2.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-17 08:55:16 -05:00
teor 20486be042 Client design: add "one database per key" alternative 2021-02-16 23:25:45 -05:00
teor 55613db846 Fix a clippy redundant range lint 2021-02-17 12:47:56 +10:00
teor df59468085 Fix clippy uppercase acronym lint 2021-02-17 12:47:56 +10:00
Alfredo Garcia c8823e9552 change coverage to run on ubuntu-latest 2021-02-16 19:43:36 -05:00
Alfredo Garcia 280496ef4e bring coverage and docs back into CI 2021-02-16 19:43:36 -05:00
teor 47bcf6309a
Show env vars in CI (#1751)
And standardise how we set them
2021-02-17 08:04:00 +10:00
teor c9ca601cff Revert "Change skip network test name and comments"
This reverts commit f85006a798.
2021-02-16 12:50:14 -05:00
Deirdre Connolly 9493391a2a CI: bump build and test timeouts to 60 minutes 2021-02-16 12:47:35 -05:00
Deirdre Connolly 5d3fad515c Point at the renamed SECURITY.md in the README.md 2021-02-16 17:30:44 +10:00
Deirdre Connolly a6d3267f7e Rename responsible_disclosure.md to SECURITY.md 2021-02-16 17:30:44 +10:00
Deirdre Connolly 26aded0ef9 Run CI workflow on push to #main & manual request
We used to always run the CI workflow on push/merge to #main and at some point stopped; 
we still link to the status of this workflow on #main from our README. I think we should bring it back.
Also allows manual triggering of the workflow, which can come in handy if you are working
on a branch but haven't opened a PR yet.
2021-02-15 21:19:57 -05:00
Alfredo Garcia 366f239974
Resolve Windows CI disk space issues (#1726)
* remove windows conditional
* fully separate tests from large tests
* add rust beta to new large test jobs
* increase build time for windows
* disable cargo increment
2021-02-16 09:44:49 +10:00
teor cc7d5bd2ad
Update comments for the inbound service (#1740) 2021-02-16 06:14:40 +10:00
teor 372a432179
Update the call_all comment in Inbound (#1737) 2021-02-16 06:14:16 +10:00
Alfredo Garcia f85006a798 Change skip network test name and comments 2021-02-15 14:54:32 -05:00
teor 9056435942
Make the state usage clearer in script::Verifier (#1733) 2021-02-16 05:53:12 +10:00