Re: VACUUM unable to accomplish because of a non-existent MultiXactId

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: VACUUM unable to accomplish because of a non-existent MultiXactId
Дата
Msg-id 20151127195328.GE4320@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: VACUUM unable to accomplish because of a non-existent MultiXactId  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: VACUUM unable to accomplish because of a non-existent MultiXactId  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-admin
Tom Lane wrote:
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
> > Kouber Saparev wrote:
> >> Recently I spotted an auto vacuum that is constantly being run over a pg_toast table in the database.
Interestinglythe underlying table did not have that amount of writes that would trigger the auto vacuum every minute. 
> >>
> >> When I tried to run the VACUUM manually it died with a non-existent MultiXactId error:
> >>
> >> db=# vacuum analyze verbose pg_toast.pg_toast_376621;
> >> INFO:  vacuuming "pg_toast.pg_toast_376621"
> >> ERROR:  MultiXactId 2915905228 does no longer exist -- apparent wraparound
>
> > Hmm, I don't think there can be multixacts in toast tables at all,
> > normally.
>
> Couldn't creation and deletion of a toasted object within the same
> transaction do it?

I tried and couldn't find a way to cause one to appear.  When a row is
created, it has xmax=0 so when it's deleted the xmax can just be set to
the deleting xact.  And we don't ever update pg_toast rows, AFAIK.

--
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: VACUUM unable to accomplish because of a non-existent MultiXactId
Следующее
От: Tom Lane
Дата:
Сообщение: Re: VACUUM unable to accomplish because of a non-existent MultiXactId