nodejs async request stop working but no mistake

var request = require('request');
var async = require('async');

require('http').globalAgent.maxSockets = 30;
var count = 0;

var urlArr = ['url1','url2'.......] // ten thousand links to request

async.eachLimit(urlArr, 30, iterator, function(err) {
    console.log('complete');
});

function iterator(url,callback) {
    request(url, function(error, response, body) {
        console.log(count++);
        if (!error && response.statusCode === 200) {
            return callback(null);
        } else{
            return callback(null);
        }

    });
}

The code above stop working after a few minutes, no error happen, the process is hoding and not exit, what's the problem with it?