Skip to content

Commit fda1a6c

Browse files
author
Lukasz Gasior
committed
enqueue items on terminated
1 parent e9f966b commit fda1a6c

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/main/scala/io/iohk/ethereum/blockchain/sync/FastSync.scala

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -200,19 +200,17 @@ trait FastSync {
200200
case SyncRequestHandler.Done =>
201201
context unwatch sender()
202202
assignedHandlers -= sender()
203-
requestedMptNodes = requestedMptNodes - sender()
204-
requestedNonMptNodes = requestedNonMptNodes - sender()
205-
requestedBlockBodies = requestedBlockBodies - sender()
206-
requestedReceipts = requestedReceipts - sender()
203+
cleanupRequestedMaps(sender())
207204
processSyncing()
208205

209206
case Terminated(ref) if assignedHandlers.contains(ref) =>
210207
context unwatch ref
211208
assignedHandlers -= ref
212-
requestedMptNodes = requestedMptNodes - ref
213-
requestedNonMptNodes = requestedNonMptNodes - ref
214-
requestedBlockBodies = requestedBlockBodies - ref
215-
requestedReceipts = requestedReceipts - ref
209+
mptNodesQueue ++= requestedMptNodes.getOrElse(ref, Nil)
210+
nonMptNodesQueue ++= requestedNonMptNodes.getOrElse(ref, Nil)
211+
blockBodiesQueue ++= requestedBlockBodies.getOrElse(ref, Nil)
212+
receiptsQueue ++= requestedReceipts.getOrElse(ref, Nil)
213+
cleanupRequestedMaps(ref)
216214

217215
case PrintStatus =>
218216
val totalNodesCount = downloadedNodesCount + mptNodesQueue.size + nonMptNodesQueue.size
@@ -222,6 +220,13 @@ trait FastSync {
222220
|State: $downloadedNodesCount/$totalNodesCount known nodes.""".stripMargin.replace("\n", " "))
223221
}
224222

223+
private def cleanupRequestedMaps(handler: ActorRef): Unit = {
224+
requestedMptNodes = requestedMptNodes - handler
225+
requestedNonMptNodes = requestedNonMptNodes - handler
226+
requestedBlockBodies = requestedBlockBodies - handler
227+
requestedReceipts = requestedReceipts - handler
228+
}
229+
225230
private def insertBlocks(requestedHashes: Seq[ByteString], blockBodies: Seq[BlockBody]): Unit = {
226231
//todo this is moved from FastSyncBlockBodiesRequestHandler.scala we should add block validation here
227232
//load header from chain by hash and check consistency with BlockValidator.validateHeaderAndBody

0 commit comments

Comments
 (0)