Subject: Possible regression setting GUCs on \connect

From: David Steele <[email-masked]>
Date: Thu, 27 Apr 2023 18:22:09 +0300

Hackers,

I have been updating pgAudit for PG16 and ran into the following issue 
in the regression tests:

\connect - user1
WARNING:  permission denied to set parameter "pgaudit.log_level"

This happens after switching back and forth a few times between the 
current user when the regression script was executed and user1 which is 
created in the script. Specifically, it happens at [1].

I have tracked the issue down to context == PGC_USERSET for case 
PGC_SUSET in set_config_option_ext(). This GUC is PGC_SUSET so it seems 
like once it is set reloading it should not be an issue.

If the GUC is set again immediately before the \connect then there is no 
error, so it looks like the correct context is being lost somewhere 
along the way.

Before I get into serious debugging on this issue, I thought it would be 
good to bring it up in case the answer is obvious to someone else.

Thanks,
-David

[1] 
https://github.com/pgaudit/pgaudit/compare/dev-pg16-ci#diff-db4bb73982787fa1d07d4c9d80bc54028b8d2a52b80806f1352a42c42f00eaaaR604