Skip to content

Commit fa9e1b7

Browse files
apollo_state_sync: spwan storage reader server for state sync (#11719)
1 parent 05bf367 commit fa9e1b7

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

crates/apollo_state_sync/src/runner/mod.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ use papyrus_common::pending_classes::PendingClasses;
5858
use starknet_api::block::{BlockHash, BlockHashAndNumber};
5959
use starknet_api::felt;
6060
use tokio::sync::RwLock;
61+
use tokio::task::AbortHandle;
6162
use tracing::instrument::Instrument;
6263
use 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

112115
impl 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
)

crates/apollo_state_sync/src/runner/test.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fn run_panics_when_network_future_returns() {
2424
new_block_dev_null_future,
2525
rpc_server_future,
2626
register_metrics_future,
27-
storage_reader_server: None,
27+
storage_reader_server_handle: None,
2828
};
2929
state_sync_runner.start().now_or_never().unwrap();
3030
}
@@ -48,7 +48,7 @@ fn run_panics_when_network_future_returns_error() {
4848
new_block_dev_null_future,
4949
rpc_server_future,
5050
register_metrics_future,
51-
storage_reader_server: None,
51+
storage_reader_server_handle: None,
5252
};
5353
state_sync_runner.start().now_or_never().unwrap();
5454
}
@@ -71,7 +71,7 @@ fn run_panics_when_sync_client_future_returns_error() {
7171
new_block_dev_null_future,
7272
rpc_server_future,
7373
register_metrics_future,
74-
storage_reader_server: None,
74+
storage_reader_server_handle: None,
7575
};
7676
state_sync_runner.start().now_or_never().unwrap();
7777
}

0 commit comments

Comments
 (0)