Re: pg_dump error... Follow up

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Adam Witney <awitney(at)sgul(dot)ac(dot)uk>, pgsql-admin <pgsql-admin(at)postgresql(dot)org>, Michael Fuhr <mike(at)fuhr(dot)org>
Subject: Re: pg_dump error... Follow up
Date: 2005-09-07 17:12:20
Message-ID: 28274.1126113140@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

I wrote
> Adam Witney <awitney(at)sgul(dot)ac(dot)uk> writes:
>> I think I have found the offending row in measured_bioassay_base... The
>> entry in its toast table looks like this

>> bugasbase2=# select chunk_id, chunk_seq, length(chunk_data) from
>> pg_toast.pg_toast_134401982 where chunk_id = 144391872;
>> chunk_id | chunk_seq | length
>> -----------+-----------+--------
>> 144391872 | 0 | 1998
>> 144391872 | 1 | 1998
>> 144391872 | 2 | 1998
>> 144391872 | 3 | 1998
>> 144391872 | 4 | 1998
>> 7625296 | 3292 | 24
>> 7625297 | 3292 | 24
>> 7625298 | 3292 | 24
>> 7625299 | 3292 | 24
>> 7625308 | 3292 | 19

> This is pretty wacko, because as far as I can see there is nothing wrong
> with the index at all --- in particular, no gap in the chunk id/seq
> series here, according to pg_filedump.

Actually, it's also possible that the index is fine and the problem is
in the underlying toast table ... which would be unfortunate, because
it'd mean that there's no easy way out like a REINDEX or database
restart.

We can check this by seeing if the data looks the same using the CTIDs
that we can see in the index. Please try the same query as above, ie,
select chunk_id, chunk_seq, length(chunk_data) from
pg_toast.pg_toast_134401982 where ...
using these WHERE conditions:

ctid = '(165390,4)'
ctid = '(165391,1)'
ctid = '(165391,2)'
ctid = '(165391,3)'
ctid = '(165391,4)'
ctid = '(165392,1)'
ctid = '(165392,2)'
ctid = '(165392,3)'
ctid = '(165392,4)'

It'd also be interesting to look at pg_filedump data for pages 165390
through 165392 of the toast table itself (not the index) --- see -R
option of pg_filedump to limit the range of pages.

regards, tom lane

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Peter Eisentraut 2005-09-07 18:01:00 Re: How to determine date / time of last postmaster restart
Previous Message Tom Lane 2005-09-07 17:06:26 Re: pg_dump error... Follow up