From 065fefd97565d9c72a19ce58c8dfcf80c7da91c2 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 23 Feb 2025 12:45:31 +0100 Subject: [PATCH] postgresqlTestHook: shutdown on failure Previously, the user of postgresqlTestHook would have needed to set failureHook accordingly. However, this was not a clean solution, because postgresqlStop would also run for configure or build failures, before the server was even started. This gave odd errors from a failed shutdown in the log. Now postgresqlStop is only called when it makes sense - and whenever postgresqlTestHook is used. --- pkgs/by-name/po/postgresqlTestHook/postgresql-test-hook.sh | 6 ++++-- pkgs/servers/sql/postgresql/ext/pgtap.nix | 1 - pkgs/servers/sql/postgresql/ext/postgis.nix | 1 - pkgs/servers/sql/postgresql/postgresqlTestExtension.nix | 1 - 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/po/postgresqlTestHook/postgresql-test-hook.sh b/pkgs/by-name/po/postgresqlTestHook/postgresql-test-hook.sh index d09153b2d644..41762121882b 100644 --- a/pkgs/by-name/po/postgresqlTestHook/postgresql-test-hook.sh +++ b/pkgs/by-name/po/postgresqlTestHook/postgresql-test-hook.sh @@ -1,5 +1,5 @@ -preCheckHooks+=('postgresqlStart') -postCheckHooks+=('postgresqlStop') +preCheckHooks+=(postgresqlStart) +postCheckHooks+=(postgresqlStop) postgresqlStart() { @@ -69,6 +69,7 @@ EOF echo 'starting postgresql' eval "${postgresqlStartCommands:-pg_ctl start}" + failureHooks+=(postgresqlStop) echo 'setting up postgresql' eval "$postgresqlTestSetupCommands" @@ -80,4 +81,5 @@ EOF postgresqlStop() { echo 'stopping postgresql' pg_ctl stop + failureHooks=("${failureHooks[@]/postgresqlStop}") } diff --git a/pkgs/servers/sql/postgresql/ext/pgtap.nix b/pkgs/servers/sql/postgresql/ext/pgtap.nix index 55d8613adce0..37cd20d70202 100644 --- a/pkgs/servers/sql/postgresql/ext/pgtap.nix +++ b/pkgs/servers/sql/postgresql/ext/pgtap.nix @@ -45,7 +45,6 @@ postgresqlBuildExtension (finalAttrs: { SELECT * FROM finish(); ROLLBACK; ''; - failureHook = "postgresqlStop"; checkPhase = '' runHook preCheck psql -a -v ON_ERROR_STOP=1 -f $sqlPath diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix index 2fde76e12fa1..2e9a76c43c7b 100644 --- a/pkgs/servers/sql/postgresql/ext/postgis.nix +++ b/pkgs/servers/sql/postgresql/ext/postgis.nix @@ -92,7 +92,6 @@ postgresqlBuildExtension (finalAttrs: { ]; postgresqlTestUserOptions = "LOGIN SUPERUSER"; - failureHook = "postgresqlStop"; # postgis config directory assumes /include /lib from the same root for json-c library env.NIX_LDFLAGS = "-L${lib.getLib json_c}/lib"; diff --git a/pkgs/servers/sql/postgresql/postgresqlTestExtension.nix b/pkgs/servers/sql/postgresql/postgresqlTestExtension.nix index fead59db740c..0143ce3150ef 100644 --- a/pkgs/servers/sql/postgresql/postgresqlTestExtension.nix +++ b/pkgs/servers/sql/postgresql/postgresqlTestExtension.nix @@ -21,7 +21,6 @@ stdenvNoCC.mkDerivation ( postgresqlTestHook (postgresql.withPackages (ps: [ finalPackage ] ++ (map (p: ps."${p}") withPackages))) ]; - failureHook = "postgresqlStop"; postgresqlTestUserOptions = "LOGIN SUPERUSER"; passAsFile = [ "sql" ]; sql =