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