Re: pgsql: Improve error handling in RemovePgTempFiles(). - Mailing list pgsql-committers

From Thomas Munro
Subject Re: pgsql: Improve error handling in RemovePgTempFiles().
Date
Msg-id CAEepm=2y06SehAkTnd5sU_eVqdv5P-=Srt1y5vYNQk6yVDVaPw@mail.gmail.com
Whole thread Raw
In response to pgsql: Improve error handling in RemovePgTempFiles().  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: pgsql: Improve error handling in RemovePgTempFiles().
Re: pgsql: Improve error handling in RemovePgTempFiles().
List pgsql-committers
On Tue, Dec 5, 2017 at 11:59 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Improve error handling in RemovePgTempFiles().
>
> [...] I also
> removed the previous practice of silently ignoring ENOENT failures during
> directory opens --- there are some corner cases where that could happen
> given a previous database crash, but that seems like a bad excuse for
> ignoring a condition that isn't expected in most cases.  A LOG message
> during postmaster start seems OK in such situations, and better than
> no output at all.

Was it intentional that a newly created cluster produces a LOG error
on startup until you eventually do something to cause base/pgsql_tmp
to exist?  Same for each tablespace you create.

2018-01-07 16:34:20.352 NZDT [77400] LOG:  could not open directory
"base/pgsql_tmp": No such file or directory
2018-01-07 16:34:20.354 NZDT [77400] LOG:  could not open directory
"pg_tblspc/16384/PG_11_201712251/pgsql_tmp": No such file or directory

Perhaps RemovePgTempFiles() could check if each one exists before
calling RemovePgTempFilesInDir(), like in the attached?  Alternatively
we could make RemovePgTempFilesInDir() return early if temp_dir ==
NULL (going against your commit message above), or I suppose we could
arrange for temporary directories always to exist in base and each
tablespace.

-- 
Thomas Munro
http://www.enterprisedb.com

Attachment

pgsql-committers by date:

Previous
From: Simon Riggs
Date:
Subject: pgsql: Add TIMELINE to backup_label file
Next
From: Tom Lane
Date:
Subject: Re: pgsql: Improve error handling in RemovePgTempFiles().