Re: postgres_fdw - cached connection leaks if the associated user mapping/foreign server is dropped
Fujii Masao <masao.fujii@oss.nttdata.com>
From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2020-12-24T14:45:40Z
Lists: pgsql-hackers
On 2020/12/24 23:30, Bharath Rupireddy wrote: > On Thu, Dec 24, 2020 at 7:43 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote: >> Even when we're in the midst of transaction, if that transaction has not used >> the cached connections yet, we close them immediately. So, to make the >> comment more precise, what about updating the comment as follows? >> >> --------------------- >> After a change to a pg_foreign_server or pg_user_mapping catalog entry, >> close connections depending on that entry immediately if current >> transaction has not used those connections yet. Otherwise, mark those >> connections as invalid and then make pgfdw_xact_callback() close them >> at the end of current transaction, since they cannot be closed in the midst >> of a transaction using them. Closed connections will be remade at the next >> opportunity if necessary. >> --------------------- > > Done. > >> + /* >> + * Close the connection if it's not in midst of a xact. Otherwise >> + * mark it as invalid so that it can be disconnected at the end of >> + * main xact in pgfdw_xact_callback(). >> + */ >> >> Because of the same reason as the above, what about updating this comment >> as follows? >> >> --------------------- >> Close the connection immediately if it's not used yet in this transaction. >> Otherwise mark it as invalid so that pgfdw_xact_callback() can close it >> at the end of this transaction. >> --------------------- > > Done. > > Attaching v3 patch. Please have a look. Thanks! Thanks a lot! Barring any objection, I will commit this version. Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION
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