@@ -26,12 +26,12 @@ use lightning::routing::scoring::{
2626 ChannelLiquidities , ProbabilisticScorer , ProbabilisticScoringDecayParameters ,
2727} ;
2828use lightning:: util:: persist:: {
29- migrate_kv_store_data , KVStore , KVSTORE_NAMESPACE_KEY_ALPHABET , KVSTORE_NAMESPACE_KEY_MAX_LEN ,
30- NETWORK_GRAPH_PERSISTENCE_KEY , NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE ,
31- NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE , OUTPUT_SWEEPER_PERSISTENCE_KEY ,
32- OUTPUT_SWEEPER_PERSISTENCE_PRIMARY_NAMESPACE , OUTPUT_SWEEPER_PERSISTENCE_SECONDARY_NAMESPACE ,
33- SCORER_PERSISTENCE_KEY , SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
34- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
29+ migrate_kv_store_data_async , KVStore , KVSTORE_NAMESPACE_KEY_ALPHABET ,
30+ KVSTORE_NAMESPACE_KEY_MAX_LEN , NETWORK_GRAPH_PERSISTENCE_KEY ,
31+ NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE , NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE ,
32+ OUTPUT_SWEEPER_PERSISTENCE_KEY , OUTPUT_SWEEPER_PERSISTENCE_PRIMARY_NAMESPACE ,
33+ OUTPUT_SWEEPER_PERSISTENCE_SECONDARY_NAMESPACE , SCORER_PERSISTENCE_KEY ,
34+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE , SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
3535} ;
3636use lightning:: util:: ser:: { Readable , ReadableArgs , Writeable } ;
3737use lightning_persister:: fs_store:: v1:: FilesystemStore ;
@@ -631,7 +631,7 @@ pub(crate) async fn read_bdk_wallet_change_set(
631631/// If the directory contains v1 data (files at the top level), the data is migrated to v2 format
632632/// in a temporary directory, the original is renamed to `fs_store_v1_backup`, and the migrated
633633/// directory is moved into place.
634- pub ( crate ) fn open_or_migrate_fs_store (
634+ pub ( crate ) async fn open_or_migrate_fs_store (
635635 storage_dir_path : PathBuf ,
636636) -> Result < FilesystemStoreV2 , BuildError > {
637637 let parent_dir = storage_dir_path. parent ( ) . ok_or ( BuildError :: StoragePathAccessFailed ) ?;
@@ -646,14 +646,15 @@ pub(crate) fn open_or_migrate_fs_store(
646646 Ok ( store) => Ok ( store) ,
647647 Err ( FilesystemStoreV2Error :: V1DataDetected ( _) ) => {
648648 // The directory contains v1 data, migrate to v2.
649- let mut v1_store = FilesystemStore :: new ( storage_dir_path. clone ( ) ) ;
649+ let v1_store = FilesystemStore :: new ( storage_dir_path. clone ( ) ) ;
650650
651651 let v2_dir = fs_store_sibling_path ( & storage_dir_path, "fs_store_v2_migrating" ) ;
652652 fs:: create_dir_all ( v2_dir. clone ( ) ) . map_err ( |_| BuildError :: StoragePathAccessFailed ) ?;
653- let mut v2_store = FilesystemStoreV2 :: new ( v2_dir. clone ( ) )
653+ let v2_store = FilesystemStoreV2 :: new ( v2_dir. clone ( ) )
654654 . map_err ( |_| BuildError :: KVStoreSetupFailed ) ?;
655655
656- migrate_kv_store_data ( & mut v1_store, & mut v2_store)
656+ migrate_kv_store_data_async ( & v1_store, & v2_store)
657+ . await
657658 . map_err ( |_| BuildError :: KVStoreSetupFailed ) ?;
658659
659660 // Swap directories: rename v1 out of the way, move v2 into place.
@@ -738,15 +739,15 @@ mod tests {
738739 assert_eq ! ( expected_seed_bytes, read_seed_bytes) ;
739740 }
740741
741- #[ test]
742- fn fs_store_migration_recovers_before_v1_backup_rename ( ) {
742+ #[ tokio :: test]
743+ async fn fs_store_migration_recovers_before_v1_backup_rename ( ) {
743744 let fs_store_path = fs_store_path ( ) ;
744745 let mut v1_store = write_v1_test_data ( & fs_store_path) ;
745746 let v2_migrating_path = sibling_path ( & fs_store_path, "fs_store_v2_migrating" ) ;
746747 let mut v2_store = FilesystemStoreV2 :: new ( v2_migrating_path. clone ( ) ) . unwrap ( ) ;
747748 migrate_kv_store_data ( & mut v1_store, & mut v2_store) . unwrap ( ) ;
748749
749- let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . unwrap ( ) ;
750+ let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . await . unwrap ( ) ;
750751 assert_eq ! (
751752 KVStoreSync :: read(
752753 & migrated_store,
@@ -761,8 +762,8 @@ mod tests {
761762 assert ! ( !v2_migrating_path. exists( ) ) ;
762763 }
763764
764- #[ test]
765- fn fs_store_migration_recovers_after_v1_backup_rename ( ) {
765+ #[ tokio :: test]
766+ async fn fs_store_migration_recovers_after_v1_backup_rename ( ) {
766767 let fs_store_path = fs_store_path ( ) ;
767768 let mut v1_store = write_v1_test_data ( & fs_store_path) ;
768769 let v2_migrating_path = sibling_path ( & fs_store_path, "fs_store_v2_migrating" ) ;
@@ -772,7 +773,7 @@ mod tests {
772773 let backup_path = sibling_path ( & fs_store_path, "fs_store_v1_backup" ) ;
773774 fs:: rename ( & fs_store_path, backup_path) . unwrap ( ) ;
774775
775- let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . unwrap ( ) ;
776+ let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . await . unwrap ( ) ;
776777 assert_eq ! (
777778 KVStoreSync :: read(
778779 & migrated_store,
@@ -787,8 +788,8 @@ mod tests {
787788 assert ! ( !v2_migrating_path. exists( ) ) ;
788789 }
789790
790- #[ test]
791- fn fs_store_migration_recovers_after_v2_rename ( ) {
791+ #[ tokio :: test]
792+ async fn fs_store_migration_recovers_after_v2_rename ( ) {
792793 let fs_store_path = fs_store_path ( ) ;
793794 let mut v1_store = write_v1_test_data ( & fs_store_path) ;
794795 let v2_migrating_path = sibling_path ( & fs_store_path, "fs_store_v2_migrating" ) ;
@@ -799,7 +800,7 @@ mod tests {
799800 fs:: rename ( & fs_store_path, & backup_path) . unwrap ( ) ;
800801 fs:: rename ( & v2_migrating_path, & fs_store_path) . unwrap ( ) ;
801802
802- let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . unwrap ( ) ;
803+ let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . await . unwrap ( ) ;
803804 assert_eq ! (
804805 KVStoreSync :: read(
805806 & migrated_store,
@@ -815,15 +816,15 @@ mod tests {
815816 assert ! ( !v2_migrating_path. exists( ) ) ;
816817 }
817818
818- #[ test]
819- fn fs_store_migration_recovers_backup_without_migrating_dir ( ) {
819+ #[ tokio :: test]
820+ async fn fs_store_migration_recovers_backup_without_migrating_dir ( ) {
820821 let fs_store_path = fs_store_path ( ) ;
821822 write_v1_test_data ( & fs_store_path) ;
822823
823824 let backup_path = sibling_path ( & fs_store_path, "fs_store_v1_backup" ) ;
824825 fs:: rename ( & fs_store_path, backup_path) . unwrap ( ) ;
825826
826- let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . unwrap ( ) ;
827+ let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . await . unwrap ( ) ;
827828 assert_eq ! (
828829 KVStoreSync :: read(
829830 & migrated_store,
@@ -838,8 +839,8 @@ mod tests {
838839 assert ! ( !sibling_path( & fs_store_path, "fs_store_v1_backup" ) . exists( ) ) ;
839840 }
840841
841- #[ test]
842- fn fs_store_migration_recovers_unexpected_migrating_dir_without_backup ( ) {
842+ #[ tokio :: test]
843+ async fn fs_store_migration_recovers_unexpected_migrating_dir_without_backup ( ) {
843844 let fs_store_path = fs_store_path ( ) ;
844845 let v2_migrating_path = sibling_path ( & fs_store_path, "fs_store_v2_migrating" ) ;
845846 let v2_store = FilesystemStoreV2 :: new ( v2_migrating_path. clone ( ) ) . unwrap ( ) ;
@@ -852,7 +853,7 @@ mod tests {
852853 )
853854 . unwrap ( ) ;
854855
855- let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . unwrap ( ) ;
856+ let migrated_store = open_or_migrate_fs_store ( fs_store_path. clone ( ) ) . await . unwrap ( ) ;
856857 assert_eq ! (
857858 KVStoreSync :: read(
858859 & migrated_store,
0 commit comments