Re: Shared buffer access rule violations?
От | Tom Lane |
---|---|
Тема | Re: Shared buffer access rule violations? |
Дата | |
Msg-id | 19346.1531280020@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Shared buffer access rule violations? (Asim R P <apraveen@pivotal.io>) |
Ответы |
Re: Shared buffer access rule violations?
|
Список | pgsql-hackers |
Asim R P <apraveen@pivotal.io> writes: > 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() That would be for a relation that no one else can even see yet, no? > vm_readbuf() > fsm_readbuf() In these cases I'd imagine that the I/O completion interlock is what is preventing other backends from accessing the buffer. > Moreover, fsm_vacuum_page() performs > "PageGetContents(page))->fp_next_slot = 0;" without content lock. That field is just a hint, IIRC, and the possibility of a torn read is explicitly not worried about. > There may be more but I want to know if these can be treated as > violations before moving ahead. These specific things don't sound like bugs, though possibly I'm missing something. Perhaps more comments would be in order. regards, tom lane
В списке pgsql-hackers по дате отправления: