Skip to content

Commit 78567d7

Browse files
committed
Improve innerFetch
1 parent 059d69e commit 78567d7

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

catchup/service.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,17 @@ func (s *Service) innerFetch(r basics.Round, peer network.Peer) (blk *bookkeepin
181181
cf()
182182
}
183183
}()
184-
return fetcher.fetchBlock(ctx, r, peer)
184+
blk, cert, ddur, err = fetcher.fetchBlock(ctx, r, peer)
185+
// check to see if we aborted due to ledger.
186+
if err != nil {
187+
select {
188+
case <-ledgerWaitCh:
189+
// yes, we aborted since the ledger received this round.
190+
err = errLedgerAlreadyHasBlock
191+
default:
192+
}
193+
}
194+
return
185195
}
186196

187197
// fetchAndWrite fetches a block, checks the cert, and writes it to the ledger. Cert checking and ledger writing both wait for the ledger to advance if necessary.

0 commit comments

Comments
 (0)