回复:Fix missing initialization of delayChkptEnd - Mailing list pgsql-hackers

From 蔡梦娟(玊于)
Subject 回复:Fix missing initialization of delayChkptEnd
Date
Msg-id 54883563-12a6-4cc7-acb7-66773bf96f95.mengjuan.cmj@alibaba-inc.com
Whole thread Raw
In response to Fix missing initialization of delayChkptEnd  ("蔡梦娟(玊于)" <mengjuan.cmj@alibaba-inc.com>)
Responses Re: 回复:Fix missing initialization of delayChkptEnd
List pgsql-hackers
Hi, all. I updated the patch for this bugfix, the previous one missed the modification of function InitAuxiliaryProcess, please check the new patch.

Thanks & Best Regard


------------------------------------------------------------------
发件人:蔡梦娟(玊于) <mengjuan.cmj@alibaba-inc.com>
发送时间:2023年6月5日(星期一) 19:44
收件人:pgsql-hackers <pgsql-hackers@lists.postgresql.org>
抄 送:robertmhaas <robertmhaas@gmail.com>
主 题:Fix missing initialization of delayChkptEnd

Hi, all
I got a coredump when testing with the REL_14_STABLE branch, which is as below:
I noticed that in commit 10520f4346876aad4941797c2255a21bdac74739, int delayChkpt has been changed back to bool delayChkpt + bool delayChkptEnd. However,  the initialization to delayChkptEnd is missed in function InitProcess. When autovacuum_proc1 is in RelationTruncate, the delayChkptEnd will be set as true. If autovacuum_proc1 receives a cancel signal and handles it at this time, autovacuum_proc1 will exit without reseting delayChkptEnd in its error handling process. After that, if autovacuum_proc2 reuses this PGPROC structure, the above error will occur.

I add a patch to fix this bug in the attachment,  hope you can check it.

Thanks & Best Regard

Attachment

pgsql-hackers by date:

Previous
From: Jeff Davis
Date:
Subject: Re: pg_collation.collversion for C.UTF-8
Next
From: Bruce Momjian
Date:
Subject: Re: Let's make PostgreSQL multi-threaded