@@ -58,6 +58,7 @@ use papyrus_common::pending_classes::PendingClasses;
5858use starknet_api:: block:: { BlockHash , BlockHashAndNumber } ;
5959use starknet_api:: felt;
6060use tokio:: sync:: RwLock ;
61+ use tokio:: task:: AbortHandle ;
6162use tracing:: instrument:: Instrument ;
6263use tracing:: { debug, info_span} ;
6364
@@ -70,7 +71,9 @@ pub struct StateSyncRunner {
7071 new_block_dev_null_future : BoxFuture < ' static , Never > ,
7172 rpc_server_future : BoxFuture < ' static , ( ) > ,
7273 register_metrics_future : BoxFuture < ' static , ( ) > ,
73- pub storage_reader_server : Option < GenericStorageReaderServer > ,
74+ // Kept alive to maintain the server running.
75+ #[ allow( dead_code) ]
76+ storage_reader_server_handle : Option < AbortHandle > ,
7477}
7578
7679#[ async_trait]
@@ -106,7 +109,7 @@ pub struct StateSyncResources {
106109 pub shared_highest_block : Arc < RwLock < Option < BlockHashAndNumber > > > ,
107110 pub pending_data : Arc < RwLock < PendingData > > ,
108111 pub pending_classes : Arc < RwLock < PendingClasses > > ,
109- pub storage_reader_server : Option < GenericStorageReaderServer > ,
112+ pub storage_reader_server_handle : Option < AbortHandle > ,
110113}
111114
112115impl StateSyncResources {
@@ -118,6 +121,8 @@ impl StateSyncResources {
118121 storage_reader_server_config,
119122 )
120123 . expect ( "StateSyncRunner failed opening storage" ) ;
124+ let storage_reader_server_handle =
125+ GenericStorageReaderServer :: spawn_if_enabled ( storage_reader_server) ;
121126 let shared_highest_block = Arc :: new ( RwLock :: new ( None ) ) ;
122127 let pending_data = Arc :: new ( RwLock :: new ( PendingData {
123128 // The pending data might change later to DeprecatedPendingBlock, depending on the
@@ -135,7 +140,7 @@ impl StateSyncResources {
135140 shared_highest_block,
136141 pending_data,
137142 pending_classes,
138- storage_reader_server ,
143+ storage_reader_server_handle ,
139144 }
140145 }
141146}
@@ -162,7 +167,7 @@ impl StateSyncRunner {
162167 shared_highest_block,
163168 pending_data,
164169 pending_classes,
165- storage_reader_server ,
170+ storage_reader_server_handle ,
166171 } = StateSyncResources :: new ( & storage_config, storage_reader_server_config) ;
167172
168173 let register_metrics_future = register_metrics ( storage_reader. clone ( ) ) . boxed ( ) ;
@@ -224,7 +229,7 @@ impl StateSyncRunner {
224229 new_block_dev_null_future : pending ( ) . boxed ( ) ,
225230 rpc_server_future,
226231 register_metrics_future,
227- storage_reader_server ,
232+ storage_reader_server_handle ,
228233 } ,
229234 storage_reader,
230235 ) ;
@@ -335,7 +340,7 @@ impl StateSyncRunner {
335340 new_block_dev_null_future,
336341 rpc_server_future,
337342 register_metrics_future,
338- storage_reader_server ,
343+ storage_reader_server_handle ,
339344 } ,
340345 storage_reader,
341346 )
0 commit comments