This is to track the regression introduced in master, which needs fixing for 0.14. See #9240, #9371, etc.
CCoinsViewCache view(pcoinsTip);
        if (!DisconnectBlock(block, state, pindexDelete, view))
            return error("DisconnectTip(): DisconnectBlock %s failed", pindexDelete->GetBlockHash().ToString());
        bool flushed = view.Flush();
        assert(flushed);
    }
    LogPrint("bench", "- Disconnect block: %.2fms\n", (GetTimeMicros() - nStart) * 0.001);
    
    if (!FlushStateToDisk(state, FLUSH_STATE_IF_NEEDED))
        return false;
    if (!fBare) {
        
        std::vector<uint256> vHashUpdate;
        for (const auto& it : block.vtx) {
            const CTransaction& tx = *it;
            
            CValidationState stateDummy;
            if (tx.IsCoinBase() || !AcceptToMemoryPool(mempool, stateDummy, it, false, NULL, NULL, true)) {
                mempool.removeRecursive(tx, MemPoolRemovalReason::REORG);
            } else if (mempool.exists(tx.GetHash())) {
                vHashUpdate.push_back(tx.GetHash());
            }
        }
        
        
        
        
        
        mempool.UpdateTransactionsFromBlock(vHashUpdate);
    }