diff --git a/lib/pool.js b/lib/pool.js index b85a6738..00cce7c0 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -23,9 +23,14 @@ var pools = { log: clientConfig.poolLog || defaults.poolLog, create: function(cb) { var client = new pools.Client(clientConfig); + // Ignore errors on pooled clients until they are connected. + client.on('error', Function.prototype); client.connect(function(err) { if(err) return cb(err, null); + // Remove the noop error handler after a connection has been established. + client.removeListener('error', Function.prototype); + //handle connected client background errors by emitting event //via the pg object and then removing errored client from the pool client.on('error', function(e) { diff --git a/test/unit/pool/basic-tests.js b/test/unit/pool/basic-tests.js index 1e54672d..2bf458aa 100644 --- a/test/unit/pool/basic-tests.js +++ b/test/unit/pool/basic-tests.js @@ -121,9 +121,10 @@ test('pool with connection error on connection', function() { process.nextTick(function() { cb(new Error('Could not connect')); }); - } + }, + on: Function.prototype }; - } + }; test('two parameters', function() { var p = pools.getOrCreate(poolId++); p.connect(assert.calls(function(err, client) {