Delays between "connection received" and "connection authenticated" because of localhost entries in hba
Hi,
we're facing a strange issue with delays between "connection received" and "connection authenticated".
# select version();
version
-----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 15.6 (Ubuntu 15.6-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04)
11.4.0,64-bit
(1 ligne)
I know, this is not the latest minor version.
# \! cat /etc/os-release | head -1
PRETTY_NAME="Ubuntu 22.04.4 LTS"
What we see in the log is this (around 4 seconds delay):
2024-05-07 15:29:50.244 CEST [369909] LOG: connection received: host=xx.xx.xx.100 port=48434
2024-05-07 15:29:54.518 CEST [369909] LOG: connection authenticated: identity="xxxxxx" method=md5
(/etc/postgresql/15/main/pg_hba.conf:121)
The matching line is this ( I know md5 ):
host all xxxxx xx.xx.xx.0/24 md5
What we've found out so far is, that this only happens if we have a localhost(or any other hostname) line before the
linematching our connection, something like this:
host replication xxxxx localhost md5
host all xxxxx xx.xx.xx.0/24 md5
We don't see it if we do it like this:
host all xxxxx xx.xx.xx.0/24 md5
host replication xxxxx localhost md5
Has anyone experienced such a behavior? It seems clear that this is somehow related to name resolution but we couldn't
reproducesomething like this on the OS using dig (in a loop several hundred of times). It is also only happening from
timeto time, and not constantly.
What we're basically looking for is a way to prove the assumption without involving PostgreSQL at all, if that does
makesense?
Many thanks in advance
Daniel