@@ -1667,6 +1667,7 @@ impl<L: Deref> NetworkGraph<L> where L::Target: Logger {
1667
1667
for scid in scids_to_remove {
1668
1668
let info = channels. remove ( & scid) . expect ( "We just accessed this scid, it should be present" ) ;
1669
1669
Self :: remove_channel_in_nodes ( & mut nodes, & info, scid) ;
1670
+ self . removed_channels . lock ( ) . unwrap ( ) . insert ( scid, Some ( current_time_unix) ) ;
1670
1671
}
1671
1672
}
1672
1673
@@ -2546,6 +2547,13 @@ mod tests {
2546
2547
assert_eq ! ( network_graph. read_only( ) . nodes( ) . len( ) , 2 ) ;
2547
2548
2548
2549
network_graph. remove_stale_channels_and_tracking_with_time ( 101 + STALE_CHANNEL_UPDATE_AGE_LIMIT_SECS ) ;
2550
+ #[ cfg( not( feature = "std" ) ) ] {
2551
+ // Make sure removed channels are tracked.
2552
+ assert_eq ! ( network_graph. removed_channels. lock( ) . unwrap( ) . len( ) , 1 ) ;
2553
+ }
2554
+ network_graph. remove_stale_channels_and_tracking_with_time ( 101 + STALE_CHANNEL_UPDATE_AGE_LIMIT_SECS +
2555
+ REMOVED_ENTRIES_TRACKING_AGE_LIMIT_SECS ) ;
2556
+
2549
2557
#[ cfg( feature = "std" ) ]
2550
2558
{
2551
2559
// In std mode, a further check is performed before fully removing the channel -
@@ -2566,10 +2574,16 @@ mod tests {
2566
2574
assert ! ( gossip_sync. handle_channel_update( & valid_channel_update) . is_ok( ) ) ;
2567
2575
assert ! ( network_graph. read_only( ) . channels( ) . get( & short_channel_id) . unwrap( ) . one_to_two. is_some( ) ) ;
2568
2576
network_graph. remove_stale_channels_and_tracking_with_time ( announcement_time + 1 + STALE_CHANNEL_UPDATE_AGE_LIMIT_SECS ) ;
2577
+ // Make sure removed channels are tracked.
2578
+ assert_eq ! ( network_graph. removed_channels. lock( ) . unwrap( ) . len( ) , 1 ) ;
2579
+ // Provide a later time so that sufficient time has passed
2580
+ network_graph. remove_stale_channels_and_tracking_with_time ( announcement_time + 1 + STALE_CHANNEL_UPDATE_AGE_LIMIT_SECS +
2581
+ REMOVED_ENTRIES_TRACKING_AGE_LIMIT_SECS ) ;
2569
2582
}
2570
2583
2571
2584
assert_eq ! ( network_graph. read_only( ) . channels( ) . len( ) , 0 ) ;
2572
2585
assert_eq ! ( network_graph. read_only( ) . nodes( ) . len( ) , 0 ) ;
2586
+ assert ! ( network_graph. removed_channels. lock( ) . unwrap( ) . is_empty( ) ) ;
2573
2587
2574
2588
#[ cfg( feature = "std" ) ]
2575
2589
{
0 commit comments