On Tue, 29 Oct 2024 at 23:43, Vijaykumar Jain <
vijaykumarjain.git...@gmail.com> wrote:

>
>
> On Tue, 29 Oct 2024 at 22:00, Daniel Westermann (DWE) <
> daniel.westerm...@dbi-services.com> wrote:
>
>> 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)
>>
>>
> Just before we get into os and name resolution stuff..
>
> 1) if the database usage is really heavy with schema churn  and or heavy
> temp usage. can the catalog bloat result in slowless of pg_auth* objects
> resulting in slow authentication?
>  a general check used to be checking the size of the catalog objects and
> if needed vacuum full in single user mode .... to speed up auth lookup.
>
> i tried with pg latest on ubuntu 22, but did not see any issues.
>
>
> So to simulate a similar issue, i understand once connected, it will look
> up pg_auth* objects cascading to other catalogs for resolution ...
> in one session:
>  PGPASSWORD=1234 psql -h localhost -p 5432 -d postgres -U postgres -c
> 'select 1'
>
> in another session
>
> postgres@ubuntu:~$ cat /tmp/db1/postgresql.auto.conf
> # Do not edit this file manually!
> # It will be overwritten by the ALTER SYSTEM command.
> trace_locks = 'on'
> trace_lock_table = 1260
>
>
> postgres=# select 'pg_authid'::regclass::oid;
>  oid
> ------
>  1260
> (1 row)
> postgres=*# lock table pg_authid in access exclusive mode;
> LOCK TABLE
> postgres=*# rollback;
> ROLLBACK
>
>
> i tried to trace which locks are held when a connection is established
> after auth.
>
> for example pg_authid , so i enable tracing on this object, and to mock
> the delay i try to lock the table in access exclusive mode ...
> note, this may not be the scenario, but i am trying to rule out pg related
> delay due to bloat or locking
>
>
> postgres@ubuntu:/tmp$ time PGPASSWORD=1234 psql -h localhost -p 5432 -d
> postgres -U postgres -c 'select 1'
>  ?column?
> ----------
>         1
> (1 row)
>
>
> real    0m7.503s  - -delay
> user    0m0.001s
> sys     0m0.005s
>
> postgres@ubuntu:/tmp$ #after rollback of pg_authid
>
>
> from the logs
> 2024-10-29 18:04:46.411 UTC [localhost(33424)] [62661] LOG:  connection
> received: host=localhost port=33424
> 2024-10-29 18:04:53.906 UTC [localhost(33424)] [62661] LOG:  connection
> authenticated: identity="postgres" method=md5 (/tmp/db1/pg_hba.conf:120)
>
>
> what i tried here was, delay auth but after connection established till
> lock held, which can be due to bloated catalog objects or long locks due to
> temp objects churn?
>
> still it does not explain how the order of pg_hba deals with the delay ?
>
>  anyways, fyi to rule out :)
>
> --
> Thanks,
> Vijay
>
> Open to work
> Resume - Vijaykumar Jain <https://github.com/cabecada>
>


sorry,  sharing again.

Reply via email to