I get a lot of spurious messages like this in the log:
```
2019-08-31T18:07:53Z Synchronizing blockheaders, height: 592633 (~100.00%)
2019-08-31T18:09:40Z Synchronizing blockheaders, height: 592634 (~100.00%)
2019-08-31T18:09:40Z Synchronizing blockheaders, height: 592634 (~100.00%)
2019-08-31T18:09:40Z Synchronizing blockheaders, height: 592634 (~100.00%)
2019-08-31T18:09:40Z Synchronizing blockheaders, height: 592634 (~100.00%)
2019-08-31T18:09:40Z Synchronizing blockheaders, height: 592634 (~100.00%)
2019-08-31T18:10:28Z Synchronizing blockheaders, height: 592635 (~100.00%)
2019-08-31T18:10:28Z Synchronizing blockheaders, height: 592635 (~100.00%)
2019-08-31T18:10:28Z Synchronizing blockheaders, height: 592635 (~100.00%)
2019-08-31T18:10:28Z Synchronizing blockheaders, height: 592635 (~100.00%)
2019-08-31T18:10:28Z Synchronizing blockheaders, height: 592635 (~100.00%)
2019-08-31T18:11:01Z Synchronizing blockheaders, height: 592636 (~100.00%)
2019-08-31T18:11:01Z Synchronizing blockheaders, height: 592636 (~100.00%)
2019-08-31T18:11:01Z Synchronizing blockheaders, height: 592636 (~100.00%)
2019-08-31T18:11:01Z Synchronizing blockheaders, height: 592636 (~100.00%)
2019-08-31T18:11:01Z Synchronizing blockheaders, height: 592636 (~100.00%)
```
also
```
2019-08-31T18:19:47Z New outbound peer connected: version: 70015, blocks=592636, peer=0
2019-08-31T18:19:47Z Synchronizing blockheaders, height: 592636 (~100.00%)
2019-08-31T18:19:47Z New outbound peer connected: version: 70015, blocks=592636, peer=1
2019-08-31T18:19:48Z Synchronizing blockheaders, height: 592636 (~100.00%)
2019-08-31T18:19:48Z New outbound peer connected: version: 70015, blocks=592636, peer=2
2019-08-31T18:19:49Z Synchronizing blockheaders, height: 592636 (~100.00%)
```
This log message was introduced in #15615 by @jonasschnelli..
From what I understand, it's supposed to only be shown once per 2000 blocks, not multiple times for the same block.


{
    std::vector<COutPoint> coins_to_uncache;
    bool res = AcceptToMemoryPoolWorker(chainparams, pool, state, tx, pfMissingInputs, nAcceptTime, plTxnReplaced, bypass_limits, nAbsurdFee, coins_to_uncache, test_accept);
    if (!res) {
        
        
        
        
        for (const COutPoint& hashTx : coins_to_uncache)
            ::ChainstateActive().CoinsTip().Uncache(hashTx);
    }
    
    CValidationState stateDummy;
    ::ChainstateActive().FlushStateToDisk(chainparams, stateDummy, FlushStateMode::PERIODIC);
    return res;
}
bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransactionRef &tx,
                        bool* pfMissingInputs, std::list<CTransactionRef>* plTxnReplaced,
                        bool bypass_limits, const CAmount nAbsurdFee, bool test_accept)
{
    const CChainParams& chainparams = Params();
    return AcceptToMemoryPoolWithTime(chainparams, pool, state, tx, pfMissingInputs, GetTime(), plTxnReplaced, bypass_limits, nAbsurdFee, test_accept);
}
/**
 * Return transaction in txOut, and if it was found inside a block, its hash is placed in hashBlock.
 * If blockIndex is provided, the transaction is fetched from the corresponding block.
 */
bool GetTransaction(const uint256& hash, CTransactionRef& txOut, const Consensus::Params& consensusParams, uint256& hashBlock, const CBlockIndex* const block_index)