Merge pull request #2915 from joostjager/hodl-restart-quick-fix

htlcswitch: do not check final cltv for accepted invoices
This commit is contained in:
Olaoluwa Osuntokun 2019-04-08 13:37:58 -07:00 committed by GitHub
commit 78ffb5bb5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2775,10 +2775,15 @@ func (l *channelLink) processExitHop(pd *lnwallet.PaymentDescriptor,
}
// We'll also ensure that our time-lock value has been computed
// correctly.
// correctly. Only check the final cltv expiry for invoices when the
// invoice has not yet moved to the accepted state. Otherwise hodl htlcs
// would be canceled after a restart.
expectedHeight := heightNow + minCltvDelta
switch {
case !l.cfg.DebugHTLC && pd.Timeout < expectedHeight:
case !l.cfg.DebugHTLC &&
invoice.Terms.State != channeldb.ContractAccepted &&
pd.Timeout < expectedHeight:
log.Errorf("Incoming htlc(%x) has an expiration that is too "+
"soon: expected at least %v, got %v",
pd.RHash[:], expectedHeight, pd.Timeout)