Re: get_controlfile() can leak fds in the backend
Fabien COELHO <coelho@cri.ensmp.fr>
From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Andres Freund <andres@anarazel.de>
Cc: Michael Paquier <michael@paquier.xyz>,
Postgres hackers <pgsql-hackers@lists.postgresql.org>,
Joe Conway <mail@joeconway.com>
Date: 2019-02-28T08:54:48Z
Lists: pgsql-hackers
Hello Andres, >> Note that my concern is not about the page size, but rather that as more >> commands may change the cluster status by editing the control file, it would >> be better that a postmaster does not start while a pg_rewind or enable >> checksum or whatever is in progress, and currently there is a possible race >> condition between the read and write that can induce an issue, at least >> theoretically. > > Seems odd to bring this up in this thread, it really has nothing to do > with the topic. Indeed. I raised it here because it is in the same area of code and Michaël was looking at it. > If we were to want to do more here, ISTM the right approach would use > the postmaster pid file, not the control file. ISTM that this just means re-inventing a manual poor-featured race-condition-prone lock API around another file, which seems to be created more or less only by "pg_ctl", while some other commands use the control file (eg pg_rewind, AFAICS). -- Fabien.
Commits
-
Tighten use of OpenTransientFile and CloseTransientFile
- 82a5649fb9db 12.0 landed
-
Make get_controlfile not leak file descriptors
- 4598a99cf22d 12.0 landed