Re: ENOSPC FailedAssertion("!(RefCountErrors == 0)"

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: ENOSPC FailedAssertion("!(RefCountErrors == 0)"
Дата
Msg-id 7342.1531937117@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: ENOSPC FailedAssertion("!(RefCountErrors == 0)"  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, Jul 18, 2018 at 10:33 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> So couldn't we use TopTransactionResourceOwner instead of
>>> AuxProcessResrouceOwner? I feel a bit uneasy that bootstrap and
>>> standalone-backend have *AuxProcess*ResourceOwner.

>> Since the aux processes aren't running transactions, I didn't think
>> that TopTransactionResourceOwner was appropriate.  There's also
>> a problem for bootstrap and standalone backend cases: those do run
>> transactions and therefore create/destroy TopTransactionResourceOwner,
>> leaving nothing behind for ShutdownXLOG to use if it tries to use
>> that.  We need an extra resowner somewhere.

> FallbackResourceOwner?  DefaultResourceOwner? SessionResourceOwner?

Those names all suggest (to me anyway) that this resowner exists in
all, or at least most, processes.  That's not the situation as of this
patch, although I could imagine an alternate universe where it's true;
for example, if we decided there were a reason for normal backends to
have a session-lifespan resowner.  But even then, it might be better
to distinguish that from aux processes' use of resowners.

(I'm not really convinced that it'd be a good idea for normal backends
to have a session-lifespan resowner; that could mask bugs involving
trying to acquire resources outside a transaction.)

            regards, tom lane


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

Предыдущее
От: Marco van Eck
Дата:
Сообщение: Have an encrypted pgpass file
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Subplan result caching