test: isolate pg_terminate_backend to appname
The pg_terminate_backend done in the io test: `test_fail_with_automatic_recovery_disabled_and_terminated_using_query` Can affect other connections.
This commit is contained in:
committed by
Steve Chavez
parent
d5a4c5609e
commit
bfa4e1bedb
@@ -137,7 +137,12 @@
|
|||||||
pdFuncSettings: []
|
pdFuncSettings: []
|
||||||
pdHasVariadic: false
|
pdHasVariadic: false
|
||||||
pdName: terminate_pgrst
|
pdName: terminate_pgrst
|
||||||
pdParams: []
|
pdParams:
|
||||||
|
- ppName: appname
|
||||||
|
ppReq: true
|
||||||
|
ppType: text
|
||||||
|
ppTypeMaxLength: text
|
||||||
|
ppVar: false
|
||||||
pdReturnType:
|
pdReturnType:
|
||||||
contents:
|
contents:
|
||||||
contents:
|
contents:
|
||||||
|
|||||||
@@ -187,8 +187,8 @@ where application_name ilike 'postgrest%'
|
|||||||
limit 1;
|
limit 1;
|
||||||
$$;
|
$$;
|
||||||
|
|
||||||
create function terminate_pgrst() returns setof record as $$
|
create function terminate_pgrst(appname text) returns setof record as $$
|
||||||
select pg_terminate_backend(pid) from pg_stat_activity where application_name iLIKE '%postgrest%';
|
select pg_terminate_backend(pid) from pg_stat_activity where application_name iLIKE '%' || appname || '%';
|
||||||
$$ language sql security definer;
|
$$ language sql security definer;
|
||||||
|
|
||||||
create or replace function one_sec_timeout() returns void as $$
|
create or replace function one_sec_timeout() returns void as $$
|
||||||
|
|||||||
+4
-1
@@ -1214,11 +1214,14 @@ def test_fail_with_automatic_recovery_disabled_and_terminated_using_query(defaul
|
|||||||
env = {
|
env = {
|
||||||
**defaultenv,
|
**defaultenv,
|
||||||
"PGRST_DB_POOL_AUTOMATIC_RECOVERY": "false",
|
"PGRST_DB_POOL_AUTOMATIC_RECOVERY": "false",
|
||||||
|
"PGAPPNAME": "target",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app_name = "'{}'".format(env["PGAPPNAME"])
|
||||||
|
|
||||||
with run(env=env) as postgrest:
|
with run(env=env) as postgrest:
|
||||||
os.system(
|
os.system(
|
||||||
f'psql -d {defaultenv["PGDATABASE"]} -U {defaultenv["PGUSER"]} -h {defaultenv["PGHOST"]} --set ON_ERROR_STOP=1 -a -c "SELECT terminate_pgrst()"'
|
f'psql -d {env["PGDATABASE"]} -U {env["PGUSER"]} -h {env["PGHOST"]} --set ON_ERROR_STOP=1 -a -c "SELECT terminate_pgrst({app_name})"'
|
||||||
)
|
)
|
||||||
|
|
||||||
exitCode = wait_until_exit(postgrest)
|
exitCode = wait_until_exit(postgrest)
|
||||||
|
|||||||
Reference in New Issue
Block a user