On 11/4/20 2:50 PM, Tomas Vondra wrote:
On Wed, Nov 04, 2020 at 05:36:46PM +1300, Thomas Munro wrote:
On Wed, Nov 4, 2020 at 2:57 PM Tomas Vondra
<tomas.von...@2ndquadrant.com> wrote:
On Wed, Nov 04, 2020 at 02:49:24PM +1300, Thomas Munro wrote:
>On Wed, Nov 4, 2020 at 2:32 PM Tomas Vondra
><tomas.von...@2ndquadrant.com> wrote:
>> After a while (~1h on my machine) the pg_multixact gets over 10GB, which >> triggers a more aggressive cleanup (per MultiXactMemberFreezeThreshold).
>> My guess is that this discards some of the files, but checkpointer is
>> not aware of that, or something like that. Not sure.
>
>Urgh.  Thanks.  Looks like perhaps the problem is that I have
>RegisterSyncRequest(&tag, SYNC_FORGET_REQUEST, true) in one codepath
>that unlinks files, but not another.  Looking.

Maybe. I didn't have time to investigate this more deeply, and it takes
quite a bit of time to reproduce. I can try again with extra logging or
test some proposed fixes, if you give me a patch.

I think this should be fixed by doing all unlinking through a common
code path.  Does this pass your test?

Seems to be working - without the patch it failed after ~1h, now it's
running for more than 2h without a crash. I'll let it run for a few more
hours (on both machines).


It's been running for hours on both machines, without any crashes etc. While that's not a definitive proof the fix is correct, it certainly behaves differently.

regards

--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Reply via email to