003_check_guc.pl crashes if some extensions were loaded.
Anton A. Melnikov <a.melnikov@postgrespro.ru>
From: "Anton A. Melnikov" <a.melnikov@postgrespro.ru>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-11-01T21:28:05Z
Lists: pgsql-hackers
Attachments
- v0-0001-Exclude-extGUCs-from-003_check_guc.patch (text/x-patch) patch v0-0001
Hello!
Found that src/test/modules/test_misc/t/003_check_guc.pl will crash if an extension
that adds own GUCs was loaded into memory.
So it is now impossible to run a check-world with loaded extension libraries.
Reproduction:
cd src/test/modules/test_misc
export EXTRA_INSTALL="contrib/pg_stat_statements"
export TEMP_CONFIG=$(pwd)/pg_stat_statements_temp.conf
echo -e "shared_preload_libraries = 'pg_stat_statements'" > $TEMP_CONFIG
echo "compute_query_id = 'regress'" >> $TEMP_CONFIG
make check PROVE_TESTS='t/003_check_guc.pl'
# +++ tap check in src/test/modules/test_misc +++
t/003_check_guc.pl .. 1/?
# Failed test 'no parameters missing from postgresql.conf.sample'
# at t/003_check_guc.pl line 81.
# got: '5'
# expected: '0'
# Looks like you failed 1 test of 3.
Maybe exclude such GUCs from this test?
For instance, like that:
--- a/src/test/modules/test_misc/t/003_check_guc.pl
+++ b/src/test/modules/test_misc/t/003_check_guc.pl
@@ -19,7 +19,7 @@ my $all_params = $node->safe_psql(
"SELECT name
FROM pg_settings
WHERE NOT 'NOT_IN_SAMPLE' = ANY (pg_settings_get_flags(name)) AND
- name <> 'config_file'
+ name <> 'config_file' AND name NOT LIKE '%.%'
ORDER BY 1");
With the best wishes,
--
Anton A. Melnikov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
Commits
-
Fix 003_check_guc.pl when loading modules with custom GUCs
- 2001aab86099 15.5 landed
- e22819a74736 16.1 landed
- 40d5e5981cc0 17.0 landed