Thread: missing chunk number 0 for toast value

missing chunk number 0 for toast value

From
"Ed L."
Date:
This is for PostgreSQL 7.4.6 on hppa2.0w-hp-hpux11.00, compiled
by GCC 3.2.2.  I'm seeing the following 2 errors:

ERROR:  missing chunk number 0 for toast value 19319495
ERROR:  unexpected chunk number 4 (expected 0) for toast value
19319495

It is always the same toast value.  The table has 1.8M rows.
I've identified the column and the row:

$ psql -c "\d audit"
               Table "public.audit"
 Column |            Type             | Modifiers
--------+-----------------------------+-----------
 value  | text                        |
 cdate  | timestamp without time zone |
 key    | text                        |
Indexes:
    "idx_audit_cdate" btree (cdate)
    "idx_audit_key" btree ("key")

$ psql -c "select key from audit where key = '791015.o9'"
    key
-----------
 791015.o9
(1 row)

$ psql -c "select cdate from audit where key = '791015.o9'"
        cdate
---------------------
 2005-04-06 00:00:00
(1 row)

$ psql -c "select value from audit where key = '791015.o9'"
ERROR:  missing chunk number 0 for toast value 19319495

It causes all dumps and any access (via SELECT, UPDATE, and
COPY/pg_dump) to audit.value to fail.  I've tried to look at the
underlying toast table per some old posts, but no joy.

As usual, this is on a system with a downtime-sensitive customer.

Any ideas?

Ed

Re: missing chunk number 0 for toast value

From
Tom Lane
Date:
"Ed L." <pgsql@bluepolka.net> writes:
> This is for PostgreSQL 7.4.6 on hppa2.0w-hp-hpux11.00, compiled
> by GCC 3.2.2.  I'm seeing the following 2 errors:

> ERROR:  missing chunk number 0 for toast value 19319495
> ERROR:  unexpected chunk number 4 (expected 0) for toast value
> 19319495

Have you tried REINDEXing the toast table in question?

            regards, tom lane

Re: missing chunk number 0 for toast value

From
"Ed L."
Date:
On Wednesday April 27 2005 3:55 pm, Tom Lane wrote:
> > ERROR:  missing chunk number 0 for toast value 19319495
> > ERROR:  unexpected chunk number 4 (expected 0) for toast
> > value 19319495
>
> Have you tried REINDEXing the toast table in question?

Not yet.  Any way to repair it without blocking concurrent
access?

Ed

Re: missing chunk number 0 for toast value

From
Tom Lane
Date:
"Ed L." <pgsql@bluepolka.net> writes:
> On Wednesday April 27 2005 3:55 pm, Tom Lane wrote:
>> Have you tried REINDEXing the toast table in question?

> Not yet.  Any way to repair it without blocking concurrent
> access?

Unlikely.  But the lock will only affect operations that need to touch
toasted field values.

            regards, tom lane

Re: missing chunk number 0 for toast value

From
"Ed L."
Date:
On Wednesday April 27 2005 4:40 pm, Tom Lane wrote:
> "Ed L." <pgsql@bluepolka.net> writes:
> > On Wednesday April 27 2005 3:55 pm, Tom Lane wrote:
> >> Have you tried REINDEXing the toast table in question?
> >
> > Not yet.  Any way to repair it without blocking concurrent
> > access?
>
> Unlikely.  But the lock will only affect operations that need
> to touch toasted field values.

Does this shed any light?  pg_toast_6221538 is the relevant toast
table...

$ psql -c "set enable_indexscan=off; select chunk_seq,
length(chunk_data) from pg_toast.pg_toast_6221538 where chunk_id
= 19319495 order by chunk_seq;"
 chunk_seq | length
-----------+--------
(0 rows)

$ psql -c "select chunk_seq, length(chunk_data) from
pg_toast.pg_toast_6221538 where chunk_id = 19319495 order by
chunk_seq;"
 chunk_seq | length
-----------+--------
(0 rows)

Ed

Re: missing chunk number 0 for toast value

From
Tom Lane
Date:
"Ed L." <pgsql@bluepolka.net> writes:
> Does this shed any light?  pg_toast_6221538 is the relevant toast
> table...

> $ psql -c "set enable_indexscan=off; select chunk_seq,
> length(chunk_data) from pg_toast.pg_toast_6221538 where chunk_id
> = 19319495 order by chunk_seq;"
>  chunk_seq | length
> -----------+--------
> (0 rows)

Doesn't look very promising :-(

            regards, tom lane

Re: missing chunk number 0 for toast value

From
"Ed L."
Date:
On Wednesday April 27 2005 6:11 pm, Tom Lane wrote:
> "Ed L." <pgsql@bluepolka.net> writes:
> > Does this shed any light?  pg_toast_6221538 is the relevant
> > toast table...
> >
> > $ psql -c "set enable_indexscan=off; select chunk_seq,
> > length(chunk_data) from pg_toast.pg_toast_6221538 where
> > chunk_id = 19319495 order by chunk_seq;"
> >  chunk_seq | length
> > -----------+--------
> > (0 rows)
>
> Doesn't look very promising :-(

Sorry...what does that mean?  Not promising that reindexing the
toast table would help because there is no data there?

Ed