@@ -1182,16 +1182,12 @@ impl OutboundPayments {
11821182 is_retryable_now = false ;
11831183 }
11841184 if payment. get ( ) . remaining_parts ( ) == 0 {
1185- if payment. get ( ) . abandoned ( ) {
1185+ if let PendingOutboundPayment :: Abandoned { payment_hash , reason , .. } = payment. get ( ) {
11861186 if !payment_is_probe {
11871187 full_failure_ev = Some ( events:: Event :: PaymentFailed {
11881188 payment_id : * payment_id,
1189- payment_hash : payment. get ( ) . payment_hash ( ) . expect ( "PendingOutboundPayments::RetriesExceeded always has a payment hash set" ) ,
1190- reason : Some ( if payment_retryable {
1191- PaymentFailureReason :: RetriesExhausted
1192- } else {
1193- PaymentFailureReason :: RecipientRejected
1194- } ) ,
1189+ payment_hash : * payment_hash,
1190+ reason : * reason,
11951191 } ) ;
11961192 }
11971193 payment. remove ( ) ;
@@ -1253,12 +1249,15 @@ impl OutboundPayments {
12531249 ) {
12541250 let mut outbounds = self . pending_outbound_payments . lock ( ) . unwrap ( ) ;
12551251 if let hash_map:: Entry :: Occupied ( mut payment) = outbounds. entry ( payment_id) {
1256- if let Ok ( ( ) ) = payment. get_mut ( ) . mark_abandoned ( reason) {
1252+ if !payment. get ( ) . abandoned ( ) {
1253+ payment. get_mut ( ) . mark_abandoned ( reason) ;
1254+ }
1255+ if let PendingOutboundPayment :: Abandoned { payment_hash, reason, .. } = payment. get ( ) {
12571256 if payment. get ( ) . remaining_parts ( ) == 0 {
12581257 pending_events. lock ( ) . unwrap ( ) . push ( events:: Event :: PaymentFailed {
12591258 payment_id,
1260- payment_hash : payment . get ( ) . payment_hash ( ) . expect ( "PendingOutboundPayments::RetriesExceeded always has a payment hash set" ) ,
1261- reason : Some ( reason) ,
1259+ payment_hash : * payment_hash,
1260+ reason : * reason,
12621261 } ) ;
12631262 payment. remove ( ) ;
12641263 }
0 commit comments