diff --git a/netsync/manager.go b/netsync/manager.go index ade2178e4..940e21ad8 100644 --- a/netsync/manager.go +++ b/netsync/manager.go @@ -967,11 +967,15 @@ func (sm *SyncManager) handleInvMsg(imsg *invMsg) { } if !haveInv { if iv.Type == wire.InvTypeTx { - // Skip the transaction if it has already been - // rejected. + // Skip the transaction if it has already been rejected. if _, exists := sm.rejectedTxns[daghash.TxID(*iv.Hash)]; exists { continue } + + // Skip the transaction if it had previously been requested. + if _, exists := state.requestedTxns[daghash.TxID(*iv.Hash)]; exists { + continue + } } // Add it to the request queue.