Re: pgsql: Fix page modification outside of critical section in GIN
От | Tom Lane |
---|---|
Тема | Re: pgsql: Fix page modification outside of critical section in GIN |
Дата | |
Msg-id | 21620.1581098806@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | pgsql: Fix page modification outside of critical section in GIN (Alexander Korotkov <akorotkov@postgresql.org>) |
Ответы |
Re: pgsql: Fix page modification outside of critical section in GIN
|
Список | pgsql-committers |
Alexander Korotkov <akorotkov@postgresql.org> writes: > Fix page modification outside of critical section in GIN > By oversight 52ac6cd2d0 makes ginDeletePage() sets pd_prune_xid of page to be > deleted before entering the critical section. It appears that only versions 11 > and later were affected by this oversight. I happened to notice, while reviewing stuff for the release notes, that this patch does not do what the commit message says. The previous code modified the pd_prune_xid of the "dBuffer" page, but now it's modifying the pd_prune_xid of the "lBuffer" page. Is that actually correct? If it isn't, maybe you need to move the GinPageSetDeleteXid call down a bit further, next to the GinPageSetDeleted call (by which time the "page" variable has been restored to the right thing). Another idea which would be safer if a bit more invasive is to stop using the single "page" variable for two purposes. regards, tom lane
В списке pgsql-committers по дате отправления: