brianc / node-postgres

PostgreSQL client for node.js.

Home Page:https://node-postgres.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ConnectionTimeoutMillis is not respected and pool.connect hangs indefinitely

mikewang333 opened this issue · comments

Hi, I work on a product that allows users to connect to their own postgres instance and write queries.

I noticed for hostnames related to incorta, if the configuration isn't set up properly the connectionTimeoutMillis isn't respected and the event loop is blocked at pool.connect.

Example repro with a sample incorta postgres instance (I'm using a free trial instance so it might expire soon. It's pretty easy to spin up another one though on their site).

const { Pool } = require('pg');

const executeQuery = async () => {
  const pool = new Pool({ host: 'incorta-5668.sqli.cloud13.incorta.com', port: 3482, connectionTimeoutMillis: 1000});
  pool.on('error', (err) => {
    console.error('Unexpected error on idle client', err);
    process.exit(-1);
  });

  // STUCK AT THIS LINE
  const client = await pool.connect();

  client.release();
  await pool.end();
};

executeQuery();

Would be great if this could timeout after the configured connectionTimeoutMillis like it would with other misconfigured postgres instances.

We're using pg version 8.11.3 currently. Thank you! :)