As segwit is active on testnet, blocks will only be downloaded from NODE_WITNESS peers. Though, exactly those peers are disconnected after `BLOCK_STALLING_TIMEOUT = 2` seconds. I am running master (6e6ab2c)

This behavior is consistent across restarts. Sample [debug.log](http://pastebin.ubuntu.com/23058327/) and [getchaintips](http://pastebin.ubuntu.com/23058325/).

It is possible that I shot my own foot at some point, but it seemed smelly enough to create an issue.

CAmount filterrate = 0;
                {
                    LOCK(pto->cs_feeFilter);
                    filterrate = pto->minFeeFilter;
                }
                
                
                CompareInvMempoolOrder compareInvMempoolOrder(&mempool);
                std::make_heap(vInvTx.begin(), vInvTx.end(), compareInvMempoolOrder);
                
                
                unsigned int nRelayedTransactions = 0;
                LOCK(pto->cs_filter);
                while (!vInvTx.empty() && nRelayedTransactions < INVENTORY_BROADCAST_MAX) {
                    
                    std::pop_heap(vInvTx.begin(), vInvTx.end(), compareInvMempoolOrder);
                    std::set<uint256>::iterator it = vInvTx.back();
                    vInvTx.pop_back();
                    uint256 hash = *it;
                    
                    pto->setInventoryTxToSend.erase(it);
                    
                    if (pto->filterInventoryKnown.contains(hash)) {
                        continue;
                    }
                    
                    auto txinfo = mempool.info(hash);
                    if (!txinfo.tx) {
                        continue;
                    }