Merge pull request #3708 from filecoin-project/feat/warn-random-selection

warn when optimal selection fails to pack a block and we fall back to random selection
This commit is contained in:
Łukasz Magiera 2020-09-09 22:42:04 +02:00 committed by GitHub
commit f983145897
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -309,8 +309,10 @@ tailLoop:
// if we have gasLimit to spare, pick some random (non-negative) chains to fill the block
// we pick randomly so that we minimize the probability of duplication among all miners
startRandom := time.Now()
if gasLimit >= minGas {
randomCount := 0
startRandom := time.Now()
shuffleChains(chains)
for _, chain := range chains {
@ -359,15 +361,23 @@ tailLoop:
curChain := chainDeps[i]
curChain.merged = true
result = append(result, curChain.msgs...)
randomCount += len(curChain.msgs)
}
chain.merged = true
result = append(result, chain.msgs...)
randomCount += len(chain.msgs)
gasLimit -= chainGasLimit
}
}
if dt := time.Since(startRandom); dt > time.Millisecond {
log.Infow("pack random tail chains done", "took", dt)
if dt := time.Since(startRandom); dt > time.Millisecond {
log.Infow("pack random tail chains done", "took", dt)
}
if randomCount > 0 {
log.Warnf("optimal selection failed to pack a block; picked %d messages with random selection",
randomCount)
}
}
return result, nil