diff --git a/channeldb/payment_control.go b/channeldb/payment_control.go index 0eadf4b1f..6e688cf51 100644 --- a/channeldb/payment_control.go +++ b/channeldb/payment_control.go @@ -424,7 +424,9 @@ func (p *PaymentControl) RegisterAttempt(paymentHash lntypes.Hash, // Ensure we aren't sending more than the total payment amount. sentAmt, _ := payment.SentAmt() if sentAmt+amt > payment.Info.Value { - return ErrValueExceedsAmt + return fmt.Errorf("%w: attempted=%v, payment amount="+ + "%v", ErrValueExceedsAmt, sentAmt+amt, + payment.Info.Value) } htlcsBucket, err := bucket.CreateBucketIfNotExists( diff --git a/channeldb/payment_control_test.go b/channeldb/payment_control_test.go index 5b394edae..7751ea367 100644 --- a/channeldb/payment_control_test.go +++ b/channeldb/payment_control_test.go @@ -734,10 +734,7 @@ func TestPaymentControlMultiShard(t *testing.T) { b := *attempt b.AttemptID = 3 _, err = pControl.RegisterAttempt(info.PaymentIdentifier, &b) - if err != ErrValueExceedsAmt { - t.Fatalf("expected ErrValueExceedsAmt, got: %v", - err) - } + require.ErrorIs(t, err, ErrValueExceedsAmt) // Fail the second attempt. a := attempts[1] diff --git a/routing/payment_lifecycle.go b/routing/payment_lifecycle.go index 1d103c5ac..5244d4d63 100644 --- a/routing/payment_lifecycle.go +++ b/routing/payment_lifecycle.go @@ -179,7 +179,7 @@ func (p *paymentLifecycle) resumePayment(ctx context.Context) ([32]byte, for _, a := range payment.InFlightHTLCs() { a := a - log.Infof("Resuming payment shard %v for payment %v", + log.Infof("Resuming HTLC attempt %v for payment %v", a.AttemptID, p.identifier) p.resultCollector(&a) @@ -463,6 +463,8 @@ func (p *paymentLifecycle) collectResultAsync(attempt *channeldb.HTLCAttempt) { func (p *paymentLifecycle) collectResult(attempt *channeldb.HTLCAttempt) ( *attemptResult, error) { + log.Tracef("Collecting result for attempt %v", spew.Sdump(attempt)) + // We'll retrieve the hash specific to this shard from the // shardTracker, since it will be needed to regenerate the circuit // below. @@ -663,8 +665,8 @@ func (p *paymentLifecycle) createNewPaymentAttempt(rt *route.Route, func (p *paymentLifecycle) sendAttempt( attempt *channeldb.HTLCAttempt) (*attemptResult, error) { - log.Debugf("Attempting to send payment %v (pid=%v)", p.identifier, - attempt.AttemptID) + log.Debugf("Sending HTLC attempt(id=%v, amt=%v) for payment %v", + attempt.AttemptID, attempt.Route.TotalAmount, p.identifier) rt := attempt.Route diff --git a/routing/router.go b/routing/router.go index 4169548c5..4e8e0846b 100644 --- a/routing/router.go +++ b/routing/router.go @@ -1133,6 +1133,9 @@ func (r *ChannelRouter) SendToRouteSkipTempErr(htlcHash lntypes.Hash, func (r *ChannelRouter) sendToRoute(htlcHash lntypes.Hash, rt *route.Route, skipTempErr bool) (*channeldb.HTLCAttempt, error) { + log.Debugf("SendToRoute for payment %v with skipTempErr=%v", + htlcHash, skipTempErr) + // Calculate amount paid to receiver. amt := rt.ReceiverAmt()