@@ -329,9 +329,8 @@ impl UserNode {
329329 shutdown. clone ( ) ,
330330 ) ) ;
331331
332- // Read initial applied migrations
333- // TODO(phlip9): fetch migrations concurrently in main fetch block
334- let initial_migrations = Migrations :: read ( & * persister) . await ?;
332+ // Future that reads initial applied migrations
333+ let initial_migrations_fut = Migrations :: read_once ( & * persister) ;
335334
336335 // A future which reads the approved versions list
337336 let read_maybe_approved_versions = persister:: read_approved_versions (
@@ -341,10 +340,11 @@ impl UserNode {
341340 ) ;
342341
343342 // Fetch pending payments to initialize payments manager with
343+ let initial_migrations_fut_clone = initial_migrations_fut. clone ( ) ;
344344 let pending_payments_fut = async {
345345 // But first, migrate to payments v2 if needed
346346 persister
347- . migrate_to_payments_v2 ( & initial_migrations )
347+ . migrate_to_payments_v2 ( initial_migrations_fut_clone )
348348 . await
349349 . context ( "payments_v2 migration failed" ) ?;
350350
@@ -357,20 +357,23 @@ impl UserNode {
357357 // Read as much as possible concurrently to reduce init time
358358 #[ rustfmt:: skip] // Does not respect 80 char line width
359359 let (
360+ try_initial_migrations,
360361 try_maybe_approved_versions,
361362 try_maybe_changeset,
362363 try_existing_scids,
363364 try_pending_payments,
364365 try_maybe_revocable_clients,
365366 try_channel_monitor_bytes,
366367 ) = tokio:: join!(
368+ initial_migrations_fut,
367369 read_maybe_approved_versions,
368370 persister. read_wallet_changeset( ) ,
369371 persister. read_scids( ) ,
370372 pending_payments_fut,
371373 persister. read_json:: <RevocableClients >( & REVOCABLE_CLIENTS_FILE_ID ) ,
372374 persister. fetch_channel_monitor_bytes( ) ,
373375 ) ;
376+ let initial_migrations = try_initial_migrations?;
374377 if deploy_env. is_staging_or_prod ( ) {
375378 // Erroring here prevents an attacker with access to a target user's
376379 // gdrive from deleting the user's approved versions list in an
0 commit comments