lnd/peer
Olaoluwa Osuntokun b5cbeb4ad7
peer: make PingManager disconnect call async
In this commit, we make all calls to disconnect after a ping/pong
violation is detected in the `PingManager` async. We do this to avoid
circular waiting that may occur if the disconnect call back ends up
waiting on the peer goroutine to be torn down. If this happens, then the
peer goroutine will be blocked on the ping manager fully tearing down,
which is blocked on the peer disconnect succeeding.

This is a similar class of issue we've delt with recently as pertains to
the peer and the server: sync all back execution must not lead to
a circular waiting loop.

Fixes #8379
2024-01-22 18:20:23 -08:00
..
brontide.go peer: make PingManager disconnect call async 2024-01-22 18:20:23 -08:00
brontide_test.go peer: add unit test. 2024-01-22 13:01:42 +00:00
interfaces.go htlcswitch+peer: CreateAndAddLink in switch, add messageSwitch to peer 2021-08-10 17:15:52 -04:00
log.go multi: remove peer.go, change all references to point to peer pkg 2020-07-06 19:16:07 -04:00
musig_chan_closer.go lnwallet: fix taproot co-op close nonce bug 2023-08-22 16:33:50 -07:00
ping_manager.go peer: make PingManager disconnect call async 2024-01-22 18:20:23 -08:00
ping_manager_test.go peer: Add machinery to track the state and validity of remote pongs 2023-10-19 09:26:45 -07:00
test_utils.go peer: enable mockMessageConn to detect data races 2023-11-16 17:32:19 -06:00