> On 3 Dec 2024, at 12:27, Jeff Davis <[email protected]> wrote:
> 
> Perform provider-specific initialization in new functions.
> 
> Reviewed-by: Andreas Karlsson
> Discussion: https://postgr.es/m/[email protected]


Hi Jeff!

I'm toying with my WAL compression patch. This test is segfaulting for me:

src/test/recovery % PROVE_TESTS="t/001_stream_rep.pl" PGOPTIONS="-c 
wal_compression=lz4" make check

in src/test/recovery/tmp_check/log/001_stream_rep_primary.log I observe:

2026-03-06 20:03:01.433 +05 [24424] 001_stream_rep.pl LOG: statement: GRANT 
pg_read_all_settings TO repl_role;
2026-03-06 20:03:01.441 +05 [24318] LOG: client backend (PID 24426) was 
terminated by signal 11: Segmentation fault: 11
2026-03-06 20:03:01.441 +05 [24318] LOG: terminating any other active server 
processes

I do not expect it to pass, it would never pass with given arguments. But I do
not expect it to segfault either.

I bisected the problem, some tome ago this test would fail with something like 
"permission denied to change wal_compression". And that seems good.
Later it became "Cannot find collation for ..."
And after 1ba0782ce90cb4261098de59b49ae5cb2326566b it crashes.

wal_compression is PGC_SUSET, so when a non-superuser sets it via the startup
packet (PGC_BACKEND context), set_config_with_handle must call
pg_parameter_aclcheck -> SearchSysCache1(PARAMETERACLNAME, ...) -> hashtext ->
pg_newlocale_from_collation(DEFAULT_COLLATION_OID).

I do not know if it's expected, so I decided to report this problem, just in 
case.
I can suggest something in a line with attached, but it's kind of 
point-in-the-sky fix.


Best regards, Andrey Borodin.

Attachment: fix.diff
Description: Binary data

Reply via email to