Thread: pgsql: Improve pg_check_dir code and comments.

pgsql: Improve pg_check_dir code and comments.

From
Robert Haas
Date:
Improve pg_check_dir code and comments.

Avoid losing errno if readdir() fails and closedir() works.  Consistently
return 4 rather than 3 if both a lost+found directory and other files are
found, rather than returning one value or the other depending on the
order of the directory listing.  Update comments to match the actual
behavior.

These oversights date to commits 6f03927fce038096f53ca67eeab9adb24938f8a6
and 17f15239325a88581bb4f9cf91d38005f1f52d69.

Marco Nenciarini

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/5d6c2405f4bae6c87533d981d6a47587db501220

Modified Files
--------------
src/port/pgcheckdir.c |   23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)


Re: pgsql: Improve pg_check_dir code and comments.

From
Tom Lane
Date:
Robert Haas <rhaas@postgresql.org> writes:
> Improve pg_check_dir code and comments.
> Avoid losing errno if readdir() fails and closedir() works.  Consistently
> return 4 rather than 3 if both a lost+found directory and other files are
> found, rather than returning one value or the other depending on the
> order of the directory listing.  Update comments to match the actual
> behavior.

> These oversights date to commits 6f03927fce038096f53ca67eeab9adb24938f8a6
> and 17f15239325a88581bb4f9cf91d38005f1f52d69.

In that case, doesn't this need to be back-patched?

In addition to the problems you cite, the previous coding appears to fail
to close the directory handle if readdir() fails, which is certainly a
significant enough bug to merit back-patching.

            regards, tom lane


Re: pgsql: Improve pg_check_dir code and comments.

From
Robert Haas
Date:
On Tue, Feb 17, 2015 at 10:45 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <rhaas@postgresql.org> writes:
>> Improve pg_check_dir code and comments.
>> Avoid losing errno if readdir() fails and closedir() works.  Consistently
>> return 4 rather than 3 if both a lost+found directory and other files are
>> found, rather than returning one value or the other depending on the
>> order of the directory listing.  Update comments to match the actual
>> behavior.
>
>> These oversights date to commits 6f03927fce038096f53ca67eeab9adb24938f8a6
>> and 17f15239325a88581bb4f9cf91d38005f1f52d69.
>
> In that case, doesn't this need to be back-patched?
>
> In addition to the problems you cite, the previous coding appears to fail
> to close the directory handle if readdir() fails, which is certainly a
> significant enough bug to merit back-patching.

OK, I'll work on that.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company