Почитал доку «npm pg».
pool.connect - возвращает или создает нового клиента для работы с бд, если пул полон, то драйвер будет ожидать освобождения одного из клиентов.
Цитата:
|
Acquires a client from the pool. If the pool is 'full' and all clients are currently checked out, this will wait in a FIFO queue until a client becomes available by it being released back to the pool. If there are idle clients in the pool it will be returned to the callback on process.nextTick. If the pool is not full a new client will be created & returned to this callback.
|
Вы в своем коде постоянно запрашиваете нового клиента из пула, но не освобождаете его после того, как он перестает Вам быть нужным.
Через несколько запросов вы вытаскиваете из пула все соединения и в итоге pool.connect Вам ничего не возвращает, Вы просто остаетесь в вечной FIFO очереди.