diff --git a/discovery/gossiper.go b/discovery/gossiper.go index 4b2f4f220..0b59c8af9 100644 --- a/discovery/gossiper.go +++ b/discovery/gossiper.go @@ -860,8 +860,6 @@ func (d *AuthenticatedGossiper) stop() { func (d *AuthenticatedGossiper) ProcessRemoteAnnouncement(ctx context.Context, msg lnwire.Message, peer lnpeer.Peer) chan error { - log.Debugf("Processing remote msg %T from peer=%x", msg, peer.PubKey()) - errChan := make(chan error, 1) // For messages in the known set of channel series queries, we'll diff --git a/discovery/syncer.go b/discovery/syncer.go index b27cc8c71..ccea2dc29 100644 --- a/discovery/syncer.go +++ b/discovery/syncer.go @@ -175,7 +175,7 @@ const ( requestBatchSize = 500 // syncerBufferSize is the size of the syncer's buffers. - syncerBufferSize = 5 + syncerBufferSize = 50 ) var ( diff --git a/docs/release-notes/release-notes-0.19.1.md b/docs/release-notes/release-notes-0.19.1.md index 47c1706ce..656d6b559 100644 --- a/docs/release-notes/release-notes-0.19.1.md +++ b/docs/release-notes/release-notes-0.19.1.md @@ -20,7 +20,7 @@ # Bug Fixes -* [Fix a serialisation bug](https://github.com/lightningnetwork/lnd/pull/9856) +- [Fix a serialisation bug](https://github.com/lightningnetwork/lnd/pull/9856) that would occur when an attempt was made to write a backup file for a channel peer that has advertised an address that we do not yet know how to parse. @@ -38,6 +38,9 @@ ## Functional Enhancements +- [Increase](https://github.com/lightningnetwork/lnd/pull/9875) gossip sync + buffer to take the pressure of the read handler. + ## RPC Additions ## lncli Additions diff --git a/peer/brontide.go b/peer/brontide.go index cd7645aee..26d02d3e7 100644 --- a/peer/brontide.go +++ b/peer/brontide.go @@ -1995,9 +1995,32 @@ func newDiscMsgStream(p *Brontide) *msgStream { // so that a parent context can be passed in here. ctx := context.TODO() - // TODO(yy): `ProcessRemoteAnnouncement` returns an error chan - // and we need to process it. - p.cfg.AuthGossiper.ProcessRemoteAnnouncement(ctx, msg, p) + p.log.Debugf("Processing remote msg %T", msg) + + errChan := p.cfg.AuthGossiper.ProcessRemoteAnnouncement( + ctx, msg, p, + ) + + // Start a goroutine to process the error channel for logging + // purposes. + // + // TODO(ziggie): Maybe use the error to potentially punish the + // peer depending on the error ? + go func() { + select { + case <-p.cg.Done(): + return + + case err := <-errChan: + if err != nil { + p.log.Warnf("Error processing remote "+ + "msg %T: %v", msg, + err) + } + } + + p.log.Debugf("Processed remote msg %T", msg) + }() } return newMsgStream(