Shared buffer access rule violations?

From: Asim R P <apraveen(at)pivotal(dot)io>
To: PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: Shared buffer access rule violations?
Date: 2018-07-11 00:15:13
Message-ID: CANXE4Te4G0TGq6cr0-TvwP0H4BNiK_-hB5gHe8mF+nz0mcYfMQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

In order to make changes to a shared buffer, one must hold a pin on it
and the content lock in exclusive mode. This rule seems to be
followed in most of the places but there are a few exceptions.

One can find several PageInit() calls with no content lock held. See,
for example:

fill_seq_with_data()
vm_readbuf()
fsm_readbuf()

Moreover, fsm_vacuum_page() performs
"PageGetContents(page))->fp_next_slot = 0;" without content lock.

There may be more but I want to know if these can be treated as
violations before moving ahead.

Asim

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Langote 2018-07-11 00:26:59 Re: no partition pruning when partitioning using array type
Previous Message Alvaro Herrera 2018-07-11 00:06:24 TRUNCATE tables referenced by FKs on partitioned tables