On Wed, Aug 11, 2021 at 10:47 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Tue, Aug 10, 2021 at 4:37 PM Masahiko Sawada <sawada.m...@gmail.com> wrote: > > > > The apply worker registers SharedFileSetDeleteOnProcExit() when > > creating a file set to serialize the changes. When it raises an error > > due to conflict during applying the change, the callback eventually > > reports the temp file statistics but pgstat already shut down, > > resulting in this assertion failure. > > > > I think we can try to fix this by registering to clean up these files > via before_shmem_exit() as done by Andres in commit 675c945394. > Similar to that commit, we can change the function name > SharedFileSetDeleteOnProcExit to SharedFileSetDeleteOnShmExit and > register it via before_shmem_exit() instead of on_proc_exit(). Can you > try that and see if it fixes the issue for you unless you have better > ideas to try out?
It seems to me that moving the shared fileset cleanup to before_shmem_exit() is the right approach to fix this problem. The issue is fixed by the attached patch. Regards, -- Masahiko Sawada EDB: https://www.enterprisedb.com/
0001-Move-shared-fileset-cleanup-to-before_shmem_exit.patch
Description: Binary data