回复:Fix missing initialization of delayChkptEnd

From: 蔡梦娟(玊于) <mengjuan(dot)cmj(at)alibaba-inc(dot)com>
To: "pgsql-hackers" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Cc: "robertmhaas" <robertmhaas(at)gmail(dot)com>
Subject: 回复:Fix missing initialization of delayChkptEnd
Date: 2023-06-05 16:39:47
Message-ID: 54883563-12a6-4cc7-acb7-66773bf96f95.mengjuan.cmj@alibaba-inc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)cmj(at)alibaba-inc(dot)com>
发送时间:2023年6月5日(星期一) 19:44
收件人:pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
抄 送:robertmhaas <robertmhaas(at)gmail(dot)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 Content-Type Size
v2-0001-Fix-missing-initialization-of-delayChkptEnd.patch application/octet-stream 1.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2023-06-05 16:42:06 Re: Let's make PostgreSQL multi-threaded
Previous Message Jeff Davis 2023-06-05 16:37:07 Re: pg_collation.collversion for C.UTF-8