| From: | Zsolt Parragi <zsolt(dot)parragi(at)percona(dot)com> |
|---|---|
| To: | Jacob Champion <jacob(dot)champion(at)enterprisedb(dot)com> |
| Cc: | Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>, Daniel Gustafsson <daniel(at)yesql(dot)se>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Michael Paquier <michael(at)paquier(dot)xyz> |
| Subject: | Re: Improve OAuth discovery logging |
| Date: | 2026-03-04 20:40:34 |
| Message-ID: | CAN4CZFPjiUQbKo2q+ovs--AHkjvaE8OJyncB9xu5b+1gp=HHPQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
> Cirrus seems to have noticed an intermittent failure [1]; what's that about?
Looks like we have some out of order logging, because of the multiple
backends involved.
DISCOVERY 2026-02-27 20:11:12.104 UTC postmaster[43175] DEBUG: forked
new client backend, pid=43267 socket=7
DISCOVERY 2026-02-27 20:11:12.118 UTC client backend[43267] [unknown]
LOG: connection received: host=[local]
2026-02-27 20:11:12.179 UTC postmaster[43175] DEBUG: assigned pm
child slot 3 for client backend
2026-02-27 20:11:12.179 UTC postmaster[43175] DEBUG: forked new
client backend, pid=43281 socket=7
LOGIN 2026-02-27 20:11:12.179 UTC client backend[43281] [unknown]
LOG: connection received: host=[local]
LOGIN 2026-02-27 20:11:12.180 UTC client backend[43281] [unknown]
LOG: oauth_validator: token="9243959234", role="test"
LOGIN 2026-02-27 20:11:12.180 UTC client backend[43281] [unknown]
LOG: oauth_validator: issuer="http://127.0.0.1:44122", scope="openid
postgres"
LOGIN 2026-02-27 20:11:12.180 UTC client backend[43281] [unknown]
LOG: connection authenticated: identity="test" method=oauth
(/tmp/cirrus-ci-build/build/testrun/oauth_validator/001_server/data/t_001_server_primary_data/pgdata/pg_hba.conf:2)
LOGIN 2026-02-27 20:11:12.180 UTC client backend[43281] [unknown]
LOG: connection authorized: user=test database=postgres
application_name=001_server.pl
LOGIN 2026-02-27 20:11:12.180 UTC client backend[43281]
001_server.pl LOG: connection ready: setup total=1.804 ms, fork=0.424
ms, authentication=0.287 ms
LOGIN 2026-02-27 20:11:12.181 UTC client backend[43281]
001_server.pl LOG: statement: SELECT $$connected with user=test
dbname=postgres oauth_issuer=http://127.0.0.1:44122
oauth_client_id=f02c6361-0635$$
... we read the log around this part ...
DISCOVERY 2026-02-27 20:11:12.189 UTC client backend[43267] [unknown]
DEBUG: OAuth issuer discovery requested
2026-02-27 20:11:12.190 UTC postmaster[43175] DEBUG: releasing pm child slot 1
DISCOVERY 2026-02-27 20:11:12.190 UTC postmaster[43175] DEBUG: client
backend (PID 43267) exited with exit code 0
So it's a scheduling issue, since we log the "oauth discovery
requested" after we already sent the issuer info to the client, so the
other connection attempt can already be in progress (at least with
simple setups like this test)
Also related that connect_fails uses wait_for_log, noticing log
messages that appear later, while connect_ok simply checks the logs at
that moment.
I'm not sure which solution is better for this: removing the check for
this message from the test or modifying connect_ok to wait for all
backends that started since the connection attempt to finish?
Modifying it seems the better choice to me, but that is also a separate change.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2026-03-04 20:50:36 | Re: [BUG?] estimate_hash_bucket_stats uses wrong ndistinct for avgfreq |
| Previous Message | Rafia Sabih | 2026-03-04 20:31:51 | Re: Bypassing cursors in postgres_fdw to enable parallel plans |