when host1 is offline, resulting in a CONNECT_TIMEOUT on the socket then the postgres client errors with the following and does not attempt to connect to host2 or host3:
Error: write CONNECT_TIMEOUT host1:5432
Stack: Error: write CONNECT_TIMEOUT host1:5432
at connectTimedOut (node_modules/.pnpm/postgres@3.4.4/node_modules/postgres/cjs/src/connection.js:257:20)
at Timeout.done [as _onTimeout] (node_modules/.pnpm/postgres@3.4.4/node_modules/postgres/cjs/src/connection.js:1033:8)
at listOnTimeout (node:internal/timers:596:11)
at process.processTimers (node:internal/timers:529:7)
when host1 is online, but not listening on port then the postgres library connects to host2 or host3, as appropriate based on primary session attrs.
when we change our config to only connect to host1 when it is not listening on port:
we get the following error when trying to connect to the db via this postgres client library
Error:
Stack: AggregateError [ECONNREFUSED]:
at internalConnectMultiple (node:net:1121:18)
at internalConnectMultiple (node:net:1189:5)
at afterConnectMultiple (node:net:1688:7)
It's as if ECONNREFUSED is handled in the desired way but CONNECT_TIMEOUT is not.
Related to but different than #815
when
host1
is offline, resulting in a CONNECT_TIMEOUT on the socket then the postgres client errors with the following and does not attempt to connect tohost2
orhost3
:when
host1
is online, but not listening onport
then the postgres library connects tohost2
orhost3
, as appropriate based onprimary
session attrs.when we change our config to only connect to
host1
when it is not listening onport
:we get the following error when trying to connect to the db via this postgres client library
It's as if
ECONNREFUSED
is handled in the desired way butCONNECT_TIMEOUT
is not.