File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -535,6 +535,24 @@ impl OutboundPayments {
535535 }
536536 } else { break }
537537 }
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+ } ) ;
538556 }
539557
540558 /// 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) {
16821682 let mut msg_events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
16831683 assert_eq ! ( msg_events. len( ) , 0 ) ;
16841684
1685- nodes[ 0 ] . node . abandon_payment ( PaymentId ( payment_hash. 0 ) ) ;
16861685 let mut events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
16871686 assert_eq ! ( events. len( ) , 1 ) ;
16881687 match events[ 0 ] {
@@ -1717,7 +1716,6 @@ fn do_automatic_retries(test: AutoRetry) {
17171716 let mut msg_events = nodes[ 0 ] . node . get_and_clear_pending_msg_events ( ) ;
17181717 assert_eq ! ( msg_events. len( ) , 0 ) ;
17191718
1720- nodes[ 0 ] . node . abandon_payment ( PaymentId ( payment_hash. 0 ) ) ;
17211719 let mut events = nodes[ 0 ] . node . get_and_clear_pending_events ( ) ;
17221720 assert_eq ! ( events. len( ) , 1 ) ;
17231721 match events[ 0 ] {
You can’t perform that action at this time.
0 commit comments