graphdb: pass context to IsClosedScid

This commit is contained in:
Elle Mouton 2026-02-25 12:41:43 +02:00
parent 4dcaf1c16a
commit 8722a96a4e
No known key found for this signature in database
GPG key ID: D7D916376026F177
9 changed files with 22 additions and 16 deletions

View file

@ -59,7 +59,7 @@ type GraphCloser interface {
PutClosedScid(context.Context, lnwire.ShortChannelID) error
// IsClosedScid checks if a short channel id is closed.
IsClosedScid(lnwire.ShortChannelID) (bool, error)
IsClosedScid(context.Context, lnwire.ShortChannelID) (bool, error)
}
// NodeInfoInquirier handles queries relating to specific nodes and channels
@ -97,10 +97,10 @@ func (s *ScidCloserMan) PutClosedScid(ctx context.Context,
// IsClosedScid checks whether scid is closed so that the gossiper can ignore
// it.
func (s *ScidCloserMan) IsClosedScid(scid lnwire.ShortChannelID) (bool,
error) {
func (s *ScidCloserMan) IsClosedScid(ctx context.Context,
scid lnwire.ShortChannelID) (bool, error) {
return s.graph.IsClosedScid(scid)
return s.graph.IsClosedScid(ctx, scid)
}
// IsChannelPeer checks whether we have a channel with the peer.

View file

@ -2724,7 +2724,7 @@ func (d *AuthenticatedGossiper) handleChanAnnouncement(ctx context.Context,
// Check if the channel is already closed in which case we can ignore
// it.
closed, err := d.cfg.ScidCloser.IsClosedScid(scid)
closed, err := d.cfg.ScidCloser.IsClosedScid(ctx, scid)
if err != nil {
log.Errorf("failed to check if scid %v is closed: %v", scid,
err)

View file

@ -4793,7 +4793,7 @@ func TestChanAnnBanningNonChanPeer(t *testing.T) {
// Check that the announcement's scid is marked as closed.
isClosed, err := tCtx.gossiper.cfg.ScidCloser.IsClosedScid(
ca.ShortChannelID,
ctx, ca.ShortChannelID,
)
require.Nil(t, err)
require.True(t, isClosed)

View file

@ -187,8 +187,8 @@ func (m *mockScidCloser) PutClosedScid(_ context.Context,
return nil
}
func (m *mockScidCloser) IsClosedScid(scid lnwire.ShortChannelID) (bool,
error) {
func (m *mockScidCloser) IsClosedScid(_ context.Context,
scid lnwire.ShortChannelID) (bool, error) {
m.Lock()
defer m.Unlock()

View file

@ -779,8 +779,10 @@ func (c *ChannelGraph) PutClosedScid(ctx context.Context,
}
// IsClosedScid checks whether a channel identified by the scid is closed.
func (c *ChannelGraph) IsClosedScid(scid lnwire.ShortChannelID) (bool, error) {
return c.db.IsClosedScid(scid)
func (c *ChannelGraph) IsClosedScid(ctx context.Context,
scid lnwire.ShortChannelID) (bool, error) {
return c.db.IsClosedScid(ctx, scid)
}
// SetSourceNode sets the source node within the graph database.

View file

@ -5086,7 +5086,7 @@ func TestClosedScid(t *testing.T) {
scid := lnwire.ShortChannelID{}
// The scid should not exist in the closedScidBucket.
exists, err := graph.IsClosedScid(scid)
exists, err := graph.IsClosedScid(t.Context(), scid)
require.Nil(t, err)
require.False(t, exists)
@ -5095,7 +5095,7 @@ func TestClosedScid(t *testing.T) {
err = graph.PutClosedScid(t.Context(), scid)
require.Nil(t, err)
exists, err = graph.IsClosedScid(scid)
exists, err = graph.IsClosedScid(t.Context(), scid)
require.Nil(t, err)
require.True(t, exists)
}

View file

@ -353,7 +353,8 @@ type Store interface { //nolint:interfacebloat
// IsClosedScid checks whether a channel identified by the passed in
// scid is closed. This helps avoid having to perform expensive
// validation checks.
IsClosedScid(scid lnwire.ShortChannelID) (bool, error)
IsClosedScid(ctx context.Context,
scid lnwire.ShortChannelID) (bool, error)
// UpdateEdgePolicy updates the edge routing policy for a single
// directed edge within the database for the referenced channel. The

View file

@ -4456,7 +4456,9 @@ func (c *KVStore) PutClosedScid(_ context.Context,
// IsClosedScid checks whether a channel identified by the passed in scid is
// closed. This helps avoid having to perform expensive validation checks.
// TODO: Add an LRU cache to cut down on disc reads.
func (c *KVStore) IsClosedScid(scid lnwire.ShortChannelID) (bool, error) {
func (c *KVStore) IsClosedScid(_ context.Context,
scid lnwire.ShortChannelID) (bool, error) {
var isClosed bool
err := kvdb.View(c.db, func(tx kvdb.RTx) error {
closedScids := tx.ReadBucket(closedScidBucket)

View file

@ -3287,9 +3287,10 @@ func (s *SQLStore) PutClosedScid(ctx context.Context,
// closed. This helps avoid having to perform expensive validation checks.
//
// NOTE: part of the Store interface.
func (s *SQLStore) IsClosedScid(scid lnwire.ShortChannelID) (bool, error) {
func (s *SQLStore) IsClosedScid(ctx context.Context,
scid lnwire.ShortChannelID) (bool, error) {
var (
ctx = context.TODO()
isClosed bool
chanIDB = channelIDToBytes(scid.ToUint64())
)