Thread: some more data corruption

some more data corruption

From
Alvaro Herrera
Date:
Hi,

So I'm still investigating data corruption issues.  They have some
serious TOAST index corruption too; for example,

For example, notice how an indexscan returns invalid chunk_ids here:

select xmin,xmax,ctid,cmin, chunk_id, chunk_seq,length(chunk_data)
from pg_toast.pg_toast_18141where chunk_id between 194679500 and 194679700
order by chunk_id; xmin   |  xmax   |    ctid     | cmin | chunk_id  | chunk_seq | length
---------+---------+-------------+------+-----------+-----------+--------9767631 |       0 | (2855683,1) |   27 |
94929948|         1 |     269767659 |       0 | (2855683,5) |   28 |  94929949 |         1 |     269767659 |       0 |
(2855683,6)|   32 |  94929950 |         1 |     269767659 |       0 | (2855683,7) |   34 |  94929951 |         1 |
269767797| 9773223 | (2855684,4) |   36 |  94929958 |         1 |     279767797 | 9773223 | (2855684,5) |   38 |
94929959|         1 |     279767797 |       0 | (2855684,6) |   41 |  94929960 |         1 |     27
 



One thing that surprised me is that they are seeing such short values
being pushed out to TOAST.  The rows are typically 156 bytes wide, and
the values being pushed out are 30 bytes, so I fail to see why it would
get done.  Any theories?  Is this normal?

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support