RE: postgres_fdw - cached connection leaks if the associated user mapping/foreign server is dropped
Hou, Zhijie <houzj.fnst@cn.fujitsu.com>
From: "Hou, Zhijie" <houzj.fnst@cn.fujitsu.com>
To: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Cc: Zhihong Yu <zyu@yugabyte.com>, Fujii Masao <masao.fujii@oss.nttdata.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-12-18T11:37:21Z
Lists: pgsql-hackers
Hi
I have an issue about the existing testcase.
"""
-- Test that alteration of server options causes reconnection SELECT c3, c4 FROM ft1 ORDER BY c3, c1 LIMIT 1; -- should work ALTER SERVER loopback OPTIONS (SET dbname 'no such database'); SELECT c3, c4 FROM ft1 ORDER BY c3, c1 LIMIT 1; -- should fail DO $d$
BEGIN
EXECUTE $$ALTER SERVER loopback
OPTIONS (SET dbname '$$||current_database()||$$')$$;
END;
$d$;
SELECT c3, c4 FROM ft1 ORDER BY c3, c1 LIMIT 1; -- should work again """
IMO, the above case is designed to test the following code[1]:
With the patch, it seems the following code[1] will not work for this case, right?
(It seems the connection will be disconnect in pgfdw_xact_callback)
I do not know does it matter, or should we add a testcase to cover that?
[1] /*
* If the connection needs to be remade due to invalidation, disconnect as
* soon as we're out of all transactions.
*/
if (entry->conn != NULL && entry->invalidated && entry->xact_depth == 0)
{
elog(DEBUG3, "closing connection %p for option changes to take effect",
entry->conn);
disconnect_pg_server(entry);
}
Best regards,
houzj
Commits
-
postgres_fdw: Fix connection leak.
- b5c73eef8adf 9.5.25 landed
- 03b7a1ee7b7f 9.6.21 landed
- 744357d8461c 10.16 landed
- 294cdd7d0fff 11.11 landed
- e792ca4aca26 12.6 landed
- 546f143740a0 13.2 landed
- e3ebcca843a4 14.0 landed