zebra/zebra-chain
teor d689e7344b
fix(net): Fix potential network hangs, and reduce code complexity (#7859)
* Refactor return type of poll_discover()

* Simplify poll_ready() by removing preselected peers

* Fix peer set readiness check

* Pass task context correctly to background tasks

* Make poll_discover() return Pending

* Make poll_inventory() return Pending

* Make poll_unready() return Poll::Pending

* Simplify with futures::ready!() and ?

* When there are no peers, wake on newly ready peers, or new peers, in that order

* Preserve the original waker when there are no unready peers

* Fix polling docs and remove unnecessary code

* Make sure we're ignoring Poll::Pending not Result

* Make panic checking method names clearer

* Fix connection Client task wakeups and error handling

* Cleanup connection panic handling and add wakeup docs

* Fix connection client task wakeups to prevent hangs

* Simplify error and pending handling

* Clarify inventory set behaviour

* Define peer set poll_* methods so they return Ok if they do something

* Clarify documentation

Co-authored-by: Arya <aryasolhi@gmail.com>

* Fix test that depended on preselected peers

* Check ready peers for errors before sending requests to them

* Fix a hanging test by not waiting for irrelevant actions

* Only remove cancel handles when they are required

* fix incorrect panic on termination setting

* Clarify method comments

Co-authored-by: Arya <aryasolhi@gmail.com>

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
2023-11-16 19:53:24 +00:00
..
benches use `reddsa` crate and remove duplicated RedPallas code (#6013) 2023-02-01 23:27:28 +00:00
proptest-regressions Split out parsing & validation of test VerificationKey from checking of the signature (#2228) 2021-06-01 15:59:34 +10:00
src fix(net): Fix potential network hangs, and reduce code complexity (#7859) 2023-11-16 19:53:24 +00:00
Cargo.toml build(deps): bump the prod group with 7 updates (#7938) 2023-11-15 01:03:57 +00:00