mirror of
https://github.com/lightningnetwork/lnd.git
synced 2026-08-18 13:07:58 +02:00
When processing a remote network announcement, it is possible for two error messages to be sent back on the errChan. Since Brontide doesn't actually read from errChan, and since errChan only buffered one error message, the sending goroutine would deadlock forever. This would only become apparent when the gossiper attempted to shut down and got hung up. For now, we can fix this simply by buffering up to two error messages on errChan. There is an existing TODO to restructure this logic entirely to use the actor model, and we can do a more thorough fix as part of that work. This bug was discovered while doing full node fuzz testing and was triggered by sending a specific channel_announcement message and then shutting down LND. |
||
|---|---|---|
| .. | ||
| ban.go | ||
| ban_test.go | ||
| bootstrapper.go | ||
| chan_series.go | ||
| gossiper.go | ||
| gossiper_test.go | ||
| log.go | ||
| message_store.go | ||
| message_store_test.go | ||
| mock_test.go | ||
| reliable_sender.go | ||
| reliable_sender_test.go | ||
| sync_manager.go | ||
| sync_manager_test.go | ||
| syncer.go | ||
| syncer_atomic_test.go | ||
| syncer_queue_test.go | ||
| syncer_test.go | ||
| validation_barrier.go | ||
| validation_barrier_test.go | ||