Re: Missing Chunk Error when doing a VACUUM FULL operation - DB Corruption?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Arjun Ranade <ranade(at)nodalexchange(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Missing Chunk Error when doing a VACUUM FULL operation - DB Corruption?
Date: 2017-10-31 19:59:02
Message-ID: 13631.1509479942@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Arjun Ranade <ranade(at)nodalexchange(dot)com> writes:
> We had some downtime recently and I thought it would be a good idea to do a
> periodic VACUUM FULL of one of our large Postgres DB's.

> However, when I tried to attempt the VACUUM FULL, I saw the following error:
> INFO: vacuuming "pg_catalog.pg_statistic"
> vacuumdb: vacuuming of database "db1" failed: ERROR: missing chunk number
> 0 for toast value 30382746 in pg_toast_2619

We hear reports like this just often enough to make it seem like there's
some bug that afflicts pg_statistic specifically. Nobody's ever found
a cause though.

> Given that pg_statistic is inessential data (it can be rebuilt by analyzing
> each table), I did a 'DELETE FROM pg_statistic;' which removed all the
> rows.

That would've been my advice ...

> However, when I ran the VACUUM FULL again, I received the same error.

... but that's really interesting. Is this still reproducible? If you
could get a stack trace from the point of the error, that might yield
useful data. (Set a gdb breakpoint at "errfinish", run the VACUUM FULL,
and when it stops, get the stack with "bt". Don't use VERBOSE, or you'll
reach errfinish for each line of verbose output...)

Also, what PG version is this exactly?

regards, tom lane

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Arjun Ranade 2017-10-31 21:27:41 Re: Missing Chunk Error when doing a VACUUM FULL operation - DB Corruption?
Previous Message Arjun Ranade 2017-10-31 19:37:19 Missing Chunk Error when doing a VACUUM FULL operation - DB Corruption?