Re: pendingOps table is not cleared with fsync=off

Heikki Linnakangas <hlinnaka@iki.fi>

From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Thomas Munro <thomas.munro@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-08-06T17:35:54Z
Lists: pgsql-hackers
On 06/08/2020 18:42, Tom Lane wrote:
> Heikki Linnakangas <hlinnaka@iki.fi> writes:
>> On 09/05/2020 02:53, Thomas Munro wrote:
>>> On Sat, May 9, 2020 at 9:21 AM Heikki Linnakangas <hlinnaka@iki.fi> wrote:
>>>> I noticed that commit 3eb77eba5a changed the logic in
>>>> ProcessSyncRequests() (formerly mdsync()) so that if you have fsync=off,
>>>> the entries are not removed from the pendingOps hash table. I don't
>>>> think that was intended.
> 
> I'm looking at this commit in connection with writing release notes
> for next week's releases.  Am I right in thinking that this bug leads
> to indefinite bloat of the pendingOps hash table when fsync is off?
> If so, that seems much more worth documenting than the assertion
> failure.

That's correct.

- Heikki



Commits

  1. Move check for fsync=off so that pendingOps still gets cleared.

  2. Refactor the fsync queue for wider use.