graph/db: thread context through DisabledChannelIDs

This commit is contained in:
Elle Mouton committed 2026-02-25 15:33:33 +02:00
1 parent b1873e63ec
commit 0597250ae4
6 files changed
+16 -13

No files matched your search

+1 -1
View File
@@ -574,7 +574,7 @@ func (b *Builder) pruneZombieChans() error {
// the channel being closed and can prune it from our graph. // the channel being closed and can prune it from our graph.
if b.cfg.AssumeChannelValid { if b.cfg.AssumeChannelValid {
disabledChanIDs, err := b.cfg.Graph.DisabledChannelIDs( disabledChanIDs, err := b.cfg.Graph.DisabledChannelIDs(
lnwire.GossipVersion1, context.TODO(), lnwire.GossipVersion1,
) )
if err != nil { if err != nil {
return fmt.Errorf("unable to get disabled channels "+ return fmt.Errorf("unable to get disabled channels "+
+7 -4
View File
@@ -662,10 +662,11 @@ func (c *ChannelGraph) ForEachChannel(ctx context.Context,
} }
// DisabledChannelIDs returns the channel ids of disabled channels. // DisabledChannelIDs returns the channel ids of disabled channels.
func (c *ChannelGraph) DisabledChannelIDs(v lnwire.GossipVersion) ( func (c *ChannelGraph) DisabledChannelIDs(ctx context.Context,
v lnwire.GossipVersion) (
[]uint64, error) { []uint64, error) {
return c.db.DisabledChannelIDs(v) return c.db.DisabledChannelIDs(ctx, v)
} }
// HasV1ChannelEdge returns true if the database knows of a channel edge. // HasV1ChannelEdge returns true if the database knows of a channel edge.
@@ -952,8 +953,10 @@ func (c *VersionedGraph) ForEachChannelCacheable(
} }
// DisabledChannelIDs returns the channel ids of disabled channels. // DisabledChannelIDs returns the channel ids of disabled channels.
func (c *VersionedGraph) DisabledChannelIDs() ([]uint64, error) { func (c *VersionedGraph) DisabledChannelIDs(
return c.db.DisabledChannelIDs(c.v) ctx context.Context) ([]uint64, error) {
return c.db.DisabledChannelIDs(ctx, c.v)
} }
// FetchChanInfos returns the set of channel edges for the passed channel IDs. // FetchChanInfos returns the set of channel edges for the passed channel IDs.
+4 -4
View File
@@ -4359,7 +4359,7 @@ func testDisabledChannelIDs(t *testing.T, v lnwire.GossipVersion) {
require.NoError(t, graph.AddChannelEdge(ctx, edgeInfo)) require.NoError(t, graph.AddChannelEdge(ctx, edgeInfo))
// Ensure no disabled channels exist in the bucket on start. // Ensure no disabled channels exist in the bucket on start.
disabledChanIds, err := graph.DisabledChannelIDs() disabledChanIds, err := graph.DisabledChannelIDs(ctx)
require.NoError(t, err, "unable to get disabled channel ids") require.NoError(t, err, "unable to get disabled channel ids")
require.Empty(t, disabledChanIds) require.Empty(t, disabledChanIds)
@@ -4372,7 +4372,7 @@ func testDisabledChannelIDs(t *testing.T, v lnwire.GossipVersion) {
edge1.DisableFlags |= lnwire.ChanUpdateDisableIncoming edge1.DisableFlags |= lnwire.ChanUpdateDisableIncoming
} }
require.NoError(t, graph.UpdateEdgePolicy(ctx, edge1)) require.NoError(t, graph.UpdateEdgePolicy(ctx, edge1))
disabledChanIds, err = graph.DisabledChannelIDs() disabledChanIds, err = graph.DisabledChannelIDs(ctx)
require.NoError(t, err, "unable to get disabled channel ids") require.NoError(t, err, "unable to get disabled channel ids")
require.Empty(t, disabledChanIds) require.Empty(t, disabledChanIds)
@@ -4385,7 +4385,7 @@ func testDisabledChannelIDs(t *testing.T, v lnwire.GossipVersion) {
edge2.DisableFlags |= lnwire.ChanUpdateDisableIncoming edge2.DisableFlags |= lnwire.ChanUpdateDisableIncoming
} }
require.NoError(t, graph.UpdateEdgePolicy(ctx, edge2)) require.NoError(t, graph.UpdateEdgePolicy(ctx, edge2))
disabledChanIds, err = graph.DisabledChannelIDs() disabledChanIds, err = graph.DisabledChannelIDs(ctx)
require.NoError(t, err, "unable to get disabled channel ids") require.NoError(t, err, "unable to get disabled channel ids")
require.Equal(t, []uint64{edgeInfo.ChannelID}, disabledChanIds) require.Equal(t, []uint64{edgeInfo.ChannelID}, disabledChanIds)
@@ -4394,7 +4394,7 @@ func testDisabledChannelIDs(t *testing.T, v lnwire.GossipVersion) {
require.NoError(t, graph.DeleteChannelEdges( require.NoError(t, graph.DeleteChannelEdges(
false, true, edgeInfo.ChannelID, false, true, edgeInfo.ChannelID,
)) ))
disabledChanIds, err = graph.DisabledChannelIDs() disabledChanIds, err = graph.DisabledChannelIDs(ctx)
require.NoError(t, err, "unable to get disabled channel ids") require.NoError(t, err, "unable to get disabled channel ids")
require.Empty(t, disabledChanIds) require.Empty(t, disabledChanIds)
} }
+2 -1
View File
@@ -191,7 +191,8 @@ type Store interface { //nolint:interfacebloat
// DisabledChannelIDs returns the channel ids of disabled channels. // DisabledChannelIDs returns the channel ids of disabled channels.
// A channel is disabled when two of the associated ChanelEdgePolicies // A channel is disabled when two of the associated ChanelEdgePolicies
// have their disabled bit on. // have their disabled bit on.
DisabledChannelIDs(v lnwire.GossipVersion) ([]uint64, error) DisabledChannelIDs(ctx context.Context,
v lnwire.GossipVersion) ([]uint64, error)
// AddChannelEdge adds a new (undirected, blank) edge to the graph // AddChannelEdge adds a new (undirected, blank) edge to the graph
// database. An undirected edge from the two target nodes are created. // database. An undirected edge from the two target nodes are created.
+1 -1
View File
@@ -773,7 +773,7 @@ func (c *KVStore) ForEachNodeCached(ctx context.Context, withAddrs bool,
// A channel is disabled when two of the associated ChanelEdgePolicies // A channel is disabled when two of the associated ChanelEdgePolicies
// have their disabled bit on. // have their disabled bit on.
func (c *KVStore) DisabledChannelIDs( func (c *KVStore) DisabledChannelIDs(
v lnwire.GossipVersion) ([]uint64, error) { _ context.Context, v lnwire.GossipVersion) ([]uint64, error) {
if v != lnwire.GossipVersion1 { if v != lnwire.GossipVersion1 {
return nil, ErrVersionNotSupportedForKVDB return nil, ErrVersionNotSupportedForKVDB
+1 -2
View File
@@ -460,10 +460,9 @@ func (s *SQLStore) FetchNodeFeatures(ctx context.Context,
// //
// NOTE: part of the Store interface. // NOTE: part of the Store interface.
func (s *SQLStore) DisabledChannelIDs( func (s *SQLStore) DisabledChannelIDs(
v lnwire.GossipVersion) ([]uint64, error) { ctx context.Context, v lnwire.GossipVersion) ([]uint64, error) {
var ( var (
ctx = context.TODO()
chanIDs []uint64 chanIDs []uint64
) )
err := s.db.ExecTx(ctx, sqldb.ReadTxOpt(), func(db SQLQueries) error { err := s.db.ExecTx(ctx, sqldb.ReadTxOpt(), func(db SQLQueries) error {