Skip to content

Commit

Permalink
funding: fix itest flake with pending channels
Browse files Browse the repository at this point in the history
  • Loading branch information
yyforyongyu committed Feb 23, 2023
1 parent 2ddf079 commit 3f63152
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions funding/manager.go
Expand Up @@ -108,6 +108,11 @@ const (
// for the funding transaction to be confirmed before forgetting
// channels that aren't initiated by us. 2016 blocks is ~2 weeks.
maxWaitNumBlocksFundingConf = 2016

// pendingChansLimit is the maximum number of pending channels that we
// can have. After this point, pending channel opens will start to be
// rejected.
pendingChansLimit = 1_000
)

var (
Expand Down Expand Up @@ -1320,6 +1325,25 @@ func (f *Manager) handleFundingOpen(peer lnpeer.Peer,
return
}

// Ensure that the pendingChansLimit is respected.
pendingChans, err := f.cfg.Wallet.Cfg.Database.FetchPendingChannels()
if err != nil {
f.failFundingFlow(
peer, msg.PendingChannelID, err,
)

return
}

if len(pendingChans) > pendingChansLimit {
f.failFundingFlow(
peer, msg.PendingChannelID,
lnwire.ErrMaxPendingChannels,
)

return
}

// We'll also reject any requests to create channels until we're fully
// synced to the network as we won't be able to properly validate the
// confirmation of the funding transaction.
Expand Down

0 comments on commit 3f63152

Please sign in to comment.