WaitEventSet resource leakage
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: pgsql-hackers@lists.postgresql.org
Date: 2023-03-09T18:51:09Z
Lists: pgsql-hackers
In [1] I wrote: > PG Bug reporting form <noreply@postgresql.org> writes: >> The following script: >> [ leaks a file descriptor per error ] > > Yeah, at least on platforms where WaitEventSets own kernel file > descriptors. I don't think it's postgres_fdw's fault though, > but that of ExecAppendAsyncEventWait, which is ignoring the > possibility of failing partway through. It looks like it'd be > sufficient to add a PG_CATCH or PG_FINALLY block there to make > sure the WaitEventSet is disposed of properly --- fortunately, > it doesn't need to have any longer lifespan than that one > function. After further thought that seems like a pretty ad-hoc solution. We probably can do no better in the back branches, but shouldn't we start treating WaitEventSets as ResourceOwner-managed resources? Otherwise, transient WaitEventSets are going to be a permanent source of headaches. regards, tom lane [1] https://www.postgresql.org/message-id/423731.1678381075%40sss.pgh.pa.us
Commits
-
Fix resource leak when a FDW's ForeignAsyncRequest function fails
- 555276f85940 14.11 landed
- 481d7d1c01c6 15.6 landed
- 501cfd07dac6 16.2 landed
-
Use ResourceOwner to track WaitEventSets.
- 50c67c2019ab 17.0 landed