On an instance running pg16.0:
log_time | 2023-10-05 10:03:00.014-05
backend_type | autovacuum worker
left | page verification failed, calculated checksum 5074 but expected 5050
context | while scanning block 119 of relation "public.postgres_log_2023_10_05_0900"
This is the only error I've seen so far, and for all I know there's a
issue on the storage behind the VM, or a cosmic ray hit. But I moved
the table out of the way and saved a copy of get_raw_page() in case
someone wants to ask about it.
public | BROKEN_postgres_log_2023_10_05_0900 | table | postgres | permanent | heap | 1664 kB
This table is what it sounds like: a partition into which CSV logs are
COPY'ed. It would've been created around 8am. There's no special
params set for the table nor for autovacuum.
Although we have a ZFS tablespace, these tables aren't on it, and
full_page_writes=on. There's no crashes, and the instance has been up
since it was pg_upgraded from v15.4 on sep25.
pg_stat_all_tables indicates that the table was never (successfully)
vacuumed.
This was compiled to RPM on centos7, and might include a few commits
made since v16.0.
postgres=# SELECT * FROM heap_page_item_attrs(get_raw_page(801594131::regclass::text, 119), 801594131);
lp | lp_off | lp_flags | lp_len | t_xmin | t_xmax | t_field3 | t_ctid | t_infomask2 | t_infomask | t_hoff | t_bits |
t_oid| t_attrs
1 | 2304 | 1 | 16 | | | | | | | | |
|
2 | 8160 | 1 | 16 | | | | | | | | |
|
3 | 8144 | 1 | 16 | | | | | | | | |
|
...all the same except for lp_off...
365 | 2352 | 1 | 16 | | | | | | | | |
|
366 | 2336 | 1 | 16 | | | | | | | | |
|
367 | 2320 | 1 | 16 | | | | | | | | |
|
postgres=# SELECT FROM (SELECT tuple_data_split(801594131, t_data, t_infomask, t_infomask2, t_bits) a FROM
heap_page_items(get_raw_page(801594131::regclass::text,119))) WHERE a IS NOT NULL;
WARNING: page verification failed, calculated checksum 5074 but expected 5050
(0 rows)
--
Justin