Re: LockDatabaseObject vs. LockSharedObject

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: LockDatabaseObject vs. LockSharedObject
Дата
Msg-id 3454.1281900126@sss.pgh.pa.us
обсуждение исходный текст
Ответ на LockDatabaseObject vs. LockSharedObject  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: LockDatabaseObject vs. LockSharedObject  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> It seems suspicious to me that LockSharedObject() calls
> AcceptInvalidationMessges() and LockDatabaseObject() does not.  Since
> the only caller of LockSharedObject() at present is
> AcquireDeletionLock(), I'm not sure there's an observable bug here at
> the moment, but then again, I'm also not sure there isn't.

ITYM the only caller of LockDatabaseObject is AcquireDeletionLock.
Given that the other logic path in AcquireDeletionLock calls
LockRelationOid, which *will* result in an AcceptInvalidationMessages
call, it does seem pretty suspicious.  The type of bug that you'd
expect to have from this is that a recent DDL change on a non-relation
object might not be seen by a concurrent drop being done on that object.

I'm not sure that we have any non-relation objects that are both complex
enough and changeable enough for there to be an observable bug here,
but it seems like a risk factor going forward.  It seems to me both safe
and reasonable to add an AcceptInvalidationMessages call in HEAD.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: DropRelFileNodeBuffers API change (was Re: [BUGS] BUG #5599: Vacuum fails due to index corruption issues)
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Cost of AtEOXact_Buffers in --enable-cassert