Zebra/zebra-network/src
teor d0e6de8040
Avoid deadlocks in the address book mutex (#3244)
* Tweak crawler timings so peers are more likely to be available

* Tweak min peer connection interval so we try all peers

* Let other tasks run between fanouts, so we're more likely to choose different peers

* Let other tasks run between retries, so we're more likely to choose different peers

* Let other tasks run after peer crawler DemandDrop

This makes it more likely that peers will become ready.

* Spawn the address book updater on a blocking thread

* Spawn CandidateSet address book operations on blocking threads

* Replace the PeerSet address book with a metrics watch channel

* Fix comment

* Await spawned address book tasks

* Run the address book update tasks concurrently (except for the mutex)

* Explain an internal-only method better

* Fix a typo

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>

Co-authored-by: Alfredo Garcia <oxarbitrage@gmail.com>
2021-12-20 00:44:43 +00:00
..
address_book Security: Limit address book size to limit memory usage (#3162) 2021-12-06 16:09:10 -03:00
config Use the default port for configured listen addresses with no port (#2043) 2021-04-21 23:14:29 +00:00
meta_addr Fix new clippy lints in clippy nightly (#3176) 2021-12-09 14:19:14 +00:00
peer Avoid deadlocks in the address book mutex (#3244) 2021-12-20 00:44:43 +00:00
peer_set Avoid deadlocks in the address book mutex (#3244) 2021-12-20 00:44:43 +00:00
protocol Add diagnostics for peer set hangs (#3203) 2021-12-14 21:11:03 +00:00
address_book.rs Avoid deadlocks in the address book mutex (#3244) 2021-12-20 00:44:43 +00:00
address_book_updater.rs Avoid deadlocks in the address book mutex (#3244) 2021-12-20 00:44:43 +00:00
config.rs Fix task handling bugs, so peers are more likely to be available (#3191) 2021-12-20 09:02:31 +10:00
constants.rs Fix task handling bugs, so peers are more likely to be available (#3191) 2021-12-20 09:02:31 +10:00
isolated.rs Refactor addr v1 serialization using a separate AddrV1 type (#3021) 2021-11-10 06:47:50 +10:00
lib.rs Fix task handling bugs, so peers are more likely to be available (#3191) 2021-12-20 09:02:31 +10:00
meta_addr.rs Stop doing thousands of time checks each time we connect to a peer (#3106) 2021-12-03 15:09:43 -03:00
peer.rs Add diagnostics for peer set hangs (#3203) 2021-12-14 21:11:03 +00:00
peer_set.rs Track the number of active inbound and outbound peer connections (#2912) 2021-10-21 21:36:42 +00:00
policies.rs Fix task handling bugs, so peers are more likely to be available (#3191) 2021-12-20 09:02:31 +10:00
protocol.rs Refactor protocol into internal, external modules. 2019-11-27 05:06:01 -05:00