Re: [HACKERS] Should buffer of initialization fork have aBM_PERMANENT flag
От | Robert Haas |
---|---|
Тема | Re: [HACKERS] Should buffer of initialization fork have aBM_PERMANENT flag |
Дата | |
Msg-id | CA+TgmoZYOzNzYE5iYXCCJ_xXMeN00fej=QS02D9P70eCbqJ8HA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Should buffer of initialization fork have aBM_PERMANENT flag (Michael Paquier <michael.paquier@gmail.com>) |
Ответы |
Re: [HACKERS] Should buffer of initialization fork have aBM_PERMANENT flag
|
Список | pgsql-hackers |
On Wed, Jan 25, 2017 at 7:14 PM, Michael Paquier <michael.paquier@gmail.com> wrote: > (Adding Robert in CC.) > > On Thu, Jan 26, 2017 at 4:34 AM, Wang Hao <whberet@gmail.com> wrote: >> An unlogged table has an initialization fork. The initialization fork does >> not have an BM_PERMANENT flag when get a buffer. >> In checkpoint (not shutdown or end of recovery), it will not write to disk. >> after a crash recovery, the page of initialization fork will not correctly, >> then make the main fork not correctly too. > > For init forks the flush need absolutely to happen, so that's really > not good. We ought to fix BufferAlloc() appropriately here. I agree with that, but I propose the attached version instead. It seems cleaner to have the entire test for setting BM_PERMANENT in one place rather than splitting it up as you did. I believe this sets a record for the longest-lived data corruption bug in a commit made by me. Six years and change, woohoo. :-( -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: