File tree 2 files changed +18
-2
lines changed
2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -535,6 +535,24 @@ impl OutboundPayments {
535
535
}
536
536
} else { break }
537
537
}
538
+
539
+ let mut outbounds = self . pending_outbound_payments . lock ( ) . unwrap ( ) ;
540
+ outbounds. retain ( |pmt_id, pmt| {
541
+ let mut retain = true ;
542
+ let auto_retryable = pmt. is_auto_retryable_now ( ) ;
543
+ if let PendingOutboundPayment :: Retryable { pending_amt_msat, total_msat, .. } = pmt {
544
+ if pending_amt_msat < total_msat {
545
+ if !auto_retryable && pmt. mark_abandoned ( ) . is_ok ( ) && pmt. remaining_parts ( ) == 0 {
546
+ pending_events. lock ( ) . unwrap ( ) . push ( events:: Event :: PaymentFailed {
547
+ payment_id : * pmt_id,
548
+ payment_hash : pmt. payment_hash ( ) . expect ( "PendingOutboundPayments::RetriesExceeded always has a payment hash set" ) ,
549
+ } ) ;
550
+ retain = false ;
551
+ }
552
+ }
553
+ }
554
+ retain
555
+ } ) ;
538
556
}
539
557
540
558
/// Errors with no attempt at payment if the route parameters have expired, we failed to find a
Original file line number Diff line number Diff line change @@ -1682,7 +1682,6 @@ fn do_automatic_retries(test: AutoRetry) {
1682
1682
let mut msg_events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
1683
1683
assert_eq ! ( msg_events. len( ) , 0 ) ;
1684
1684
1685
- nodes[ 0 ] . node . abandon_payment ( PaymentId ( payment_hash. 0 ) ) ;
1686
1685
let mut events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
1687
1686
assert_eq ! ( events. len( ) , 1 ) ;
1688
1687
match events[ 0 ] {
@@ -1717,7 +1716,6 @@ fn do_automatic_retries(test: AutoRetry) {
1717
1716
let mut msg_events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
1718
1717
assert_eq ! ( msg_events. len( ) , 0 ) ;
1719
1718
1720
- nodes[ 0 ] . node . abandon_payment ( PaymentId ( payment_hash. 0 ) ) ;
1721
1719
let mut events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
1722
1720
assert_eq ! ( events. len( ) , 1 ) ;
1723
1721
match events[ 0 ] {
You can’t perform that action at this time.
0 commit comments