discovery: remove unnecessary context.Background() calls

This commit is contained in:
Elle Mouton 2025-04-09 12:18:45 +02:00
parent 3f9c554c4d
commit 67a81a2b1c
No known key found for this signature in database
GPG Key ID: D7D916376026F177
2 changed files with 15 additions and 22 deletions

View File

@ -536,7 +536,7 @@ func (g *GossipSyncer) channelGraphSyncer(ctx context.Context) {
// First, we'll attempt to continue our channel // First, we'll attempt to continue our channel
// synchronization by continuing to send off another // synchronization by continuing to send off another
// query chunk. // query chunk.
done := g.synchronizeChanIDs() done := g.synchronizeChanIDs(ctx)
// If this wasn't our last query, then we'll need to // If this wasn't our last query, then we'll need to
// transition to our waiting state. // transition to our waiting state.
@ -596,7 +596,7 @@ func (g *GossipSyncer) channelGraphSyncer(ctx context.Context) {
syncType.IsActiveSync() { syncType.IsActiveSync() {
err := g.sendGossipTimestampRange( err := g.sendGossipTimestampRange(
time.Now(), math.MaxUint32, ctx, time.Now(), math.MaxUint32,
) )
if err != nil { if err != nil {
log.Errorf("Unable to send update "+ log.Errorf("Unable to send update "+
@ -616,7 +616,7 @@ func (g *GossipSyncer) channelGraphSyncer(ctx context.Context) {
case syncerIdle: case syncerIdle:
select { select {
case req := <-g.syncTransitionReqs: case req := <-g.syncTransitionReqs:
req.errChan <- g.handleSyncTransition(req) req.errChan <- g.handleSyncTransition(ctx, req)
case req := <-g.historicalSyncReqs: case req := <-g.historicalSyncReqs:
g.handleHistoricalSync(req) g.handleHistoricalSync(req)
@ -662,8 +662,8 @@ func (g *GossipSyncer) replyHandler(ctx context.Context) {
// sendGossipTimestampRange constructs and sets a GossipTimestampRange for the // sendGossipTimestampRange constructs and sets a GossipTimestampRange for the
// syncer and sends it to the remote peer. // syncer and sends it to the remote peer.
func (g *GossipSyncer) sendGossipTimestampRange(firstTimestamp time.Time, func (g *GossipSyncer) sendGossipTimestampRange(ctx context.Context,
timestampRange uint32) error { firstTimestamp time.Time, timestampRange uint32) error {
endTimestamp := firstTimestamp.Add( endTimestamp := firstTimestamp.Add(
time.Duration(timestampRange) * time.Second, time.Duration(timestampRange) * time.Second,
@ -678,7 +678,6 @@ func (g *GossipSyncer) sendGossipTimestampRange(firstTimestamp time.Time,
TimestampRange: timestampRange, TimestampRange: timestampRange,
} }
ctx, _ := g.cg.Create(context.Background())
if err := g.cfg.sendToPeer(ctx, localUpdateHorizon); err != nil { if err := g.cfg.sendToPeer(ctx, localUpdateHorizon); err != nil {
return err return err
} }
@ -698,7 +697,7 @@ func (g *GossipSyncer) sendGossipTimestampRange(firstTimestamp time.Time,
// been queried for with a response received. We'll chunk our requests as // been queried for with a response received. We'll chunk our requests as
// required to ensure they fit into a single message. We may re-renter this // required to ensure they fit into a single message. We may re-renter this
// state in the case that chunking is required. // state in the case that chunking is required.
func (g *GossipSyncer) synchronizeChanIDs() bool { func (g *GossipSyncer) synchronizeChanIDs(ctx context.Context) bool {
// If we're in this state yet there are no more new channels to query // If we're in this state yet there are no more new channels to query
// for, then we'll transition to our final synced state and return true // for, then we'll transition to our final synced state and return true
// to signal that we're fully synchronized. // to signal that we're fully synchronized.
@ -735,7 +734,6 @@ func (g *GossipSyncer) synchronizeChanIDs() bool {
// With our chunk obtained, we'll send over our next query, then return // With our chunk obtained, we'll send over our next query, then return
// false indicating that we're net yet fully synced. // false indicating that we're net yet fully synced.
ctx, _ := g.cg.Create(context.Background())
err := g.cfg.sendToPeer(ctx, &lnwire.QueryShortChanIDs{ err := g.cfg.sendToPeer(ctx, &lnwire.QueryShortChanIDs{
ChainHash: g.cfg.chainHash, ChainHash: g.cfg.chainHash,
EncodingType: lnwire.EncodingSortedPlain, EncodingType: lnwire.EncodingSortedPlain,
@ -1037,7 +1035,7 @@ func (g *GossipSyncer) replyPeerQueries(ctx context.Context,
// meet the channel range, then chunk our responses to the remote node. We also // meet the channel range, then chunk our responses to the remote node. We also
// ensure that our final fragment carries the "complete" bit to indicate the // ensure that our final fragment carries the "complete" bit to indicate the
// end of our streaming response. // end of our streaming response.
func (g *GossipSyncer) replyChanRangeQuery(_ context.Context, func (g *GossipSyncer) replyChanRangeQuery(ctx context.Context,
query *lnwire.QueryChannelRange) error { query *lnwire.QueryChannelRange) error {
// Before responding, we'll check to ensure that the remote peer is // Before responding, we'll check to ensure that the remote peer is
@ -1049,8 +1047,6 @@ func (g *GossipSyncer) replyChanRangeQuery(_ context.Context,
"chain=%v, we're on chain=%v", query.ChainHash, "chain=%v, we're on chain=%v", query.ChainHash,
g.cfg.chainHash) g.cfg.chainHash)
ctx, _ := g.cg.Create(context.Background())
return g.cfg.sendToPeerSync(ctx, &lnwire.ReplyChannelRange{ return g.cfg.sendToPeerSync(ctx, &lnwire.ReplyChannelRange{
ChainHash: query.ChainHash, ChainHash: query.ChainHash,
FirstBlockHeight: query.FirstBlockHeight, FirstBlockHeight: query.FirstBlockHeight,
@ -1124,8 +1120,6 @@ func (g *GossipSyncer) replyChanRangeQuery(_ context.Context,
) )
} }
ctx, _ := g.cg.Create(context.Background())
return g.cfg.sendToPeerSync(ctx, &lnwire.ReplyChannelRange{ return g.cfg.sendToPeerSync(ctx, &lnwire.ReplyChannelRange{
ChainHash: query.ChainHash, ChainHash: query.ChainHash,
NumBlocks: numBlocks, NumBlocks: numBlocks,
@ -1263,7 +1257,6 @@ func (g *GossipSyncer) replyShortChanIDs(ctx context.Context,
// each one individually and synchronously to throttle the sends and // each one individually and synchronously to throttle the sends and
// perform buffering of responses in the syncer as opposed to the peer. // perform buffering of responses in the syncer as opposed to the peer.
for _, msg := range replyMsgs { for _, msg := range replyMsgs {
ctx, _ := g.cg.Create(context.Background())
err := g.cfg.sendToPeerSync(ctx, msg) err := g.cfg.sendToPeerSync(ctx, msg)
if err != nil { if err != nil {
return err return err
@ -1281,7 +1274,7 @@ func (g *GossipSyncer) replyShortChanIDs(ctx context.Context,
// ApplyGossipFilter applies a gossiper filter sent by the remote node to the // ApplyGossipFilter applies a gossiper filter sent by the remote node to the
// state machine. Once applied, we'll ensure that we don't forward any messages // state machine. Once applied, we'll ensure that we don't forward any messages
// to the peer that aren't within the time range of the filter. // to the peer that aren't within the time range of the filter.
func (g *GossipSyncer) ApplyGossipFilter(_ context.Context, func (g *GossipSyncer) ApplyGossipFilter(ctx context.Context,
filter *lnwire.GossipTimestampRange) error { filter *lnwire.GossipTimestampRange) error {
g.Lock() g.Lock()
@ -1340,7 +1333,6 @@ func (g *GossipSyncer) ApplyGossipFilter(_ context.Context,
defer returnSema() defer returnSema()
for _, msg := range newUpdatestoSend { for _, msg := range newUpdatestoSend {
ctx, _ := g.cg.Create(context.Background())
err := g.cfg.sendToPeerSync(ctx, msg) err := g.cfg.sendToPeerSync(ctx, msg)
switch { switch {
case err == ErrGossipSyncerExiting: case err == ErrGossipSyncerExiting:
@ -1362,7 +1354,7 @@ func (g *GossipSyncer) ApplyGossipFilter(_ context.Context,
// FilterGossipMsgs takes a set of gossip messages, and only send it to a peer // FilterGossipMsgs takes a set of gossip messages, and only send it to a peer
// iff the message is within the bounds of their set gossip filter. If the peer // iff the message is within the bounds of their set gossip filter. If the peer
// doesn't have a gossip filter set, then no messages will be forwarded. // doesn't have a gossip filter set, then no messages will be forwarded.
func (g *GossipSyncer) FilterGossipMsgs(_ context.Context, func (g *GossipSyncer) FilterGossipMsgs(ctx context.Context,
msgs ...msgWithSenders) { msgs ...msgWithSenders) {
// If the peer doesn't have an update horizon set, then we won't send // If the peer doesn't have an update horizon set, then we won't send
@ -1485,7 +1477,6 @@ func (g *GossipSyncer) FilterGossipMsgs(_ context.Context,
return return
} }
ctx, _ := g.cg.Create(context.Background())
if err = g.cfg.sendToPeer(ctx, msgsToSend...); err != nil { if err = g.cfg.sendToPeer(ctx, msgsToSend...); err != nil {
log.Errorf("unable to send gossip msgs: %v", err) log.Errorf("unable to send gossip msgs: %v", err)
} }
@ -1586,7 +1577,9 @@ func (g *GossipSyncer) ProcessSyncTransition(newSyncType SyncerType) error {
// //
// NOTE: The gossip syncer might have another sync state as a result of this // NOTE: The gossip syncer might have another sync state as a result of this
// transition. // transition.
func (g *GossipSyncer) handleSyncTransition(req *syncTransitionReq) error { func (g *GossipSyncer) handleSyncTransition(ctx context.Context,
req *syncTransitionReq) error {
// Return early from any NOP sync transitions. // Return early from any NOP sync transitions.
syncType := g.SyncType() syncType := g.SyncType()
if syncType == req.newSyncType { if syncType == req.newSyncType {
@ -1621,7 +1614,7 @@ func (g *GossipSyncer) handleSyncTransition(req *syncTransitionReq) error {
req.newSyncType) req.newSyncType)
} }
err := g.sendGossipTimestampRange(firstTimestamp, timestampRange) err := g.sendGossipTimestampRange(ctx, firstTimestamp, timestampRange)
if err != nil { if err != nil {
return fmt.Errorf("unable to send local update horizon: %w", return fmt.Errorf("unable to send local update horizon: %w",
err) err)

View File

@ -1495,7 +1495,7 @@ func TestGossipSyncerSynchronizeChanIDs(t *testing.T) {
for i := 0; i < chunkSize*2; i += 2 { for i := 0; i < chunkSize*2; i += 2 {
// With our set up complete, we'll request a sync of chan ID's. // With our set up complete, we'll request a sync of chan ID's.
done := syncer.synchronizeChanIDs() done := syncer.synchronizeChanIDs(context.Background())
// At this point, we shouldn't yet be done as only 2 items // At this point, we shouldn't yet be done as only 2 items
// should have been queried for. // should have been queried for.
@ -1542,7 +1542,7 @@ func TestGossipSyncerSynchronizeChanIDs(t *testing.T) {
} }
// If we issue another query, the syncer should tell us that it's done. // If we issue another query, the syncer should tell us that it's done.
done := syncer.synchronizeChanIDs() done := syncer.synchronizeChanIDs(context.Background())
if done { if done {
t.Fatalf("syncer should be finished!") t.Fatalf("syncer should be finished!")
} }