feat(engine): set eth_syncing = true if pruner is active (#4063)

This commit is contained in:
Alexey Shekhirin
2023-08-04 16:39:15 +01:00
committed by GitHub
parent ff1ef294cc
commit b673b6c158

View File

@@ -1599,6 +1599,10 @@ where
EnginePruneEvent::Started(tip_block_number) => {
trace!(target: "consensus::engine", %tip_block_number, "Pruner started");
self.metrics.pruner_runs.increment(1);
// Engine can't process any FCU/payload messages from CL while we're pruning, as
// pruner needs an exclusive write access to the database. To prevent CL from
// sending us unneeded updates, we need to respond `true` on `eth_syncing` request.
self.sync_state_updater.update_sync_state(SyncState::Syncing);
}
EnginePruneEvent::TaskDropped => {
error!(target: "consensus::engine", "Failed to receive spawned pruner");
@@ -1606,6 +1610,7 @@ where
}
EnginePruneEvent::Finished { result } => {
trace!(target: "consensus::engine", ?result, "Pruner finished");
self.sync_state_updater.update_sync_state(SyncState::Idle);
match result {
Ok(_) => {
// Update the state and hashes of the blockchain tree if possible.