Merge pull request #8346 from yyforyongyu/remove-error-return

routing+routerrpc: remove redudant error check
This commit is contained in:
Oliver Gugger 2024-01-08 17:41:32 +01:00 committed by GitHub
commit 7cb53020ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 27 deletions

View File

@ -347,30 +347,13 @@ func (s *Server) SendPaymentV2(req *SendPaymentRequest,
return err
}
// Send the payment.
err = s.cfg.Router.SendPaymentAsync(payment, paySession, shardTracker)
if err == nil {
// If the payment was sent successfully, we can start tracking
// the events.
return s.trackPayment(
sub, payHash, stream, req.NoInflightUpdates,
)
}
// Send the payment asynchronously.
s.cfg.Router.SendPaymentAsync(payment, paySession, shardTracker)
// Otherwise, transform user errors to grpc code.
if errors.Is(err, channeldb.ErrPaymentInFlight) ||
errors.Is(err, channeldb.ErrAlreadyPaid) {
log.Debugf("SendPayment async result for payment %x: %v",
payment.Identifier(), err)
return status.Error(codes.AlreadyExists, err.Error())
}
log.Errorf("SendPayment async error for payment %x: %v",
payment.Identifier(), err)
return err
// Track the payment and return.
return s.trackPayment(
sub, payHash, stream, req.NoInflightUpdates,
)
}
// EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
@ -889,10 +872,17 @@ func (s *Server) trackPayment(subscription routing.ControlTowerSubscriber,
stream.Context(), subscription, noInflightUpdates, stream.Send,
)
// If the context is canceled, we don't return an error.
if errors.Is(err, context.Canceled) {
log.Debugf("Payment stream %v canceled", identifier)
log.Infof("Payment stream %v canceled", identifier)
return nil
}
// Otherwise, we will log and return the error as the stream has
// received an error from the payment lifecycle.
log.Errorf("TrackPayment got error for payment %x: %v", identifier, err)
return err
}

View File

@ -2386,7 +2386,7 @@ func (r *ChannelRouter) SendPayment(payment *LightningPayment) ([32]byte,
// SendPaymentAsync is the non-blocking version of SendPayment. The payment
// result needs to be retrieved via the control tower.
func (r *ChannelRouter) SendPaymentAsync(payment *LightningPayment,
ps PaymentSession, st shards.ShardTracker) error {
ps PaymentSession, st shards.ShardTracker) {
// Since this is the first time this payment is being made, we pass nil
// for the existing attempt.
@ -2406,8 +2406,6 @@ func (r *ChannelRouter) SendPaymentAsync(payment *LightningPayment,
payment.Identifier(), err)
}
}()
return nil
}
// spewPayment returns a log closures that provides a spewed string