On Mon, Feb 10, 2025 at 8:23 AM Jacob Champion <[email protected]> wrote: > The test is supposed to enforce that, but I see that it's not for some > reason. That's concerning. I'll investigate, thanks for pointing it > out.
Bad regex escaping on my part; fixed in v8. Thanks for the report! While debugging, I also noticed that a poorly timed autovacuum could also show up in my new pg_stat_activity query, so I've increased the specificity. > Do we _want_ nine separate flavors of WAIT_EVENT_LDAP_UNBIND? I > figured it was enough to know that you were stuck unbinding. v8-0003 shows this approach. For the record, I think it's materially worse than v7-0003. IMO it increases the cognitive load for very little benefit and makes it more work for a newcomer to refactor the cleanup code for those routines. I think it's enough that you can see a separate LOG message for each failure case, if you want to know why we're unbinding. Thanks, --Jacob
1: b91a602cab8 ! 1: 81a61854bdf pgstat: report in earlier with STATE_STARTING
@@ src/backend/utils/activity/backend_status.c: pgstat_bestart(void)
+
+ PGSTAT_END_WRITE_ACTIVITY(beentry);
+ /* Create the backend statistics entry */
+ if (pgstat_tracks_backend_bktype(MyBackendType))
+ pgstat_create_backend(MyProcNumber);
+
/* Update app name to current GUC setting */
+ /* TODO: ask the list: maybe do this before setting STATE_UNDEFINED? */
if (application_name)
@@ src/test/authentication/meson.build: tests += {
## src/test/authentication/t/007_pre_auth.pl (new) ##
@@
+
-+# Copyright (c) 2021-2024, PostgreSQL Global Development Group
++# Copyright (c) 2021-2025, PostgreSQL Global Development Group
+
+# Tests for connection behavior prior to authentication.
+
@@ src/test/ssl/t/001_ssltests.pl: command_like(
+ while (1)
+ {
+ $pid = $psql->query(
-+ "SELECT pid FROM pg_stat_activity WHERE state =
'starting';");
++ "SELECT pid FROM pg_stat_activity WHERE state =
'starting' AND client_addr IS NOT NULL;");
+ last if $pid ne "";
+
+ usleep(100_000);
@@ src/test/ssl/t/001_ssltests.pl: command_like(
+ $psql->query(
+ "SELECT ssl, version, cipher, bits FROM pg_stat_ssl
WHERE pid = $pid"
+ ),
-+ qr/^t|TLSv[\d.]+|[\w-]+|\d+$/,
++ qr/^t\|TLSv[\d.]+\|[\w-]+\|\d+$/,
+ 'pg_stat_ssl view is updated prior to authentication');
+
+ # Detach the waitpoint and wait for the connection to complete.
2: 0cb5ab8b89d = 2: e734e46009f Report external auth calls as wait events
3: a0308928dd3 < -: ----------- squash! Report external auth calls as wait
events
-: ----------- > 3: 39c7d9ce42b squash! Report external auth calls as wait
events
v8-0001-pgstat-report-in-earlier-with-STATE_STARTING.patch
Description: Binary data
v8-0002-Report-external-auth-calls-as-wait-events.patch
Description: Binary data
v8-0003-squash-Report-external-auth-calls-as-wait-events.patch
Description: Binary data
