Re: pg_amcheck contrib application

From: Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Noah Misch <noah(at)leadboat(dot)com>, Peter Geoghegan <pg(at)bowt(dot)ie>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, "Andrey M(dot) Borodin" <x4mmm(at)yandex-team(dot)ru>, Stephen Frost <sfrost(at)snowman(dot)net>, Michael Paquier <michael(at)paquier(dot)xyz>, Amul Sul <sulamul(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_amcheck contrib application
Date: 2021-04-23 18:05:08
Message-ID: 4DE07822-A9F5-4D76-9447-CE36C844534F@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Apr 23, 2021, at 10:31 AM, Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com> wrote:
>
> I will test your patch and see what differs.

Here are the differences between master and you patch:

UPDATE $toastname SET chunk_seq = chunk_seq + 1000 WHERE chunk_id = $value_id_to_corrupt

- qr/${header}toast value 16459 chunk 0 has sequence number 1000, but expected sequence number 0/,
- qr/${header}toast value 16459 chunk 1 has sequence number 1001, but expected sequence number 1/,
- qr/${header}toast value 16459 chunk 2 has sequence number 1002, but expected sequence number 2/,
- qr/${header}toast value 16459 chunk 3 has sequence number 1003, but expected sequence number 3/,
- qr/${header}toast value 16459 chunk 4 has sequence number 1004, but expected sequence number 4/,
- qr/${header}toast value 16459 chunk 5 has sequence number 1005, but expected sequence number 5/;
+ qr/${header}toast value 16459 index scan returned chunk 1000 when expecting chunk 0/,
+ qr/${header}toast value 16459 chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1001 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1002 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1003 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1004 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1005 follows last expected chunk 5/;

UPDATE $toastname SET chunk_seq = chunk_seq * 1000 WHERE chunk_id = $value_id_to_corrupt

- qr/${header}toast value $value_id_to_corrupt chunk 1 has sequence number 1000, but expected sequence number 1/,
- qr/${header}toast value $value_id_to_corrupt chunk 2 has sequence number 2000, but expected sequence number 2/,
- qr/${header}toast value $value_id_to_corrupt chunk 3 has sequence number 3000, but expected sequence number 3/,
- qr/${header}toast value $value_id_to_corrupt chunk 4 has sequence number 4000, but expected sequence number 4/,
- qr/${header}toast value $value_id_to_corrupt chunk 5 has sequence number 5000, but expected sequence number 5/;
-
+ qr/${header}toast value 16460 index scan returned chunk 1000 when expecting chunk 1/,
+ qr/${header}toast value 16460 chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 2000 when expecting chunk 1001/,
+ qr/${header}toast value 16460 chunk 2000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 3000 when expecting chunk 2001/,
+ qr/${header}toast value 16460 chunk 3000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 4000 when expecting chunk 3001/,
+ qr/${header}toast value 16460 chunk 4000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 5000 when expecting chunk 4001/,
+ qr/${header}toast value 16460 chunk 5000 follows last expected chunk 5/;

INSERT INTO $toastname (chunk_id, chunk_seq, chunk_data)
(SELECT chunk_id,
10*chunk_seq + 1000,
chunk_data
FROM $toastname
WHERE chunk_id = $value_id_to_corrupt)

- qr/${header}toast value $value_id_to_corrupt chunk 6 has sequence number 1000, but expected sequence number 6/,
- qr/${header}toast value $value_id_to_corrupt chunk 7 has sequence number 1010, but expected sequence number 7/,
- qr/${header}toast value $value_id_to_corrupt chunk 8 has sequence number 1020, but expected sequence number 8/,
- qr/${header}toast value $value_id_to_corrupt chunk 9 has sequence number 1030, but expected sequence number 9/,
- qr/${header}toast value $value_id_to_corrupt chunk 10 has sequence number 1040, but expected sequence number 10/,
- qr/${header}toast value $value_id_to_corrupt chunk 11 has sequence number 1050, but expected sequence number 11/,
- qr/${header}toast value $value_id_to_corrupt was expected to end at chunk 6, but ended at chunk 12/;
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1000 when expecting chunk 6/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1010 when expecting chunk 1001/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1010 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1020 when expecting chunk 1011/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1020 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1030 when expecting chunk 1021/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1030 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1040 when expecting chunk 1031/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1040 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1050 when expecting chunk 1041/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1050 follows last expected chunk 5/;


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2021-04-23 18:10:14 Re: pg_amcheck contrib application
Previous Message Justin Pryzby 2021-04-23 18:01:52 Re: pgsql: autovacuum: handle analyze for partitioned tables