repro_beyond_EOF_error.txt
text/plain
Filename: repro_beyond_EOF_error.txt
Type: text/plain
Part: 0
postgres@postgres:1234 : 8182 # create table t as select i, repeat(md5(i::text), 100) as txt from generate_series(1 , 100000) i;
SELECT 100000
postgres@postgres:1234 : 8182 # analyze t;
ANALYZE
postgres@postgres:1234 : 8182 # select relfilenode, oid from pg_class where relname = 't';
relfilenode | oid
-------------+-------
16387 | 16387
(1 row)
postgres@postgres:1234 : 8182 # select pg_relation_filepath('t'::regclass);
pg_relation_filepath
----------------------
base/5/16387
(1 row)
postgres@postgres:1234 : 8182 # \! find /tmp/pg18 -ls | grep 16387
1584697 8 -rw------- 1 postgres postgres 8192 Mar 25 15:44 /tmp/pg18/base/5/16387_vm
1590939 11780 -rw------- 1 postgres postgres 12058624 Mar 25 15:43 /tmp/pg18/base/5/16387
1590944 24 -rw------- 1 postgres postgres 24576 Mar 25 15:44 /tmp/pg18/base/5/16387_fsm
postgres@postgres:1234 : 8182 # \! cp /tmp/pg18/base/5/16387* /tmp/
postgres@postgres:1234 : 8182 # insert into t select i, repeat(md5(i::text), 100) as txt from generate_series(500000, 600000) i;
INSERT 0 100001
postgres@postgres:1234 : 8182 # \! mkdir /tmp/blah
postgres@postgres:1234 : 8182 # \! mv /tmp/pg18/base/5/16387* /tmp/blah
postgres@postgres:1234 : 8182 # \! cp /tmp/16387* /tmp/pg18/base/5/
postgres@postgres:1234 : 8182 # \! find /tmp/pg18 -ls | grep 16387
1591007 8 -rw------- 1 postgres postgres 8192 Mar 25 15:45 /tmp/pg18/base/5/16387_vm
1590947 11776 -rw------- 1 postgres postgres 12058624 Mar 25 15:45 /tmp/pg18/base/5/16387
1590948 24 -rw------- 1 postgres postgres 24576 Mar 25 15:45 /tmp/pg18/base/5/16387_fsm
postgres@postgres:1234 : 8182 # select count(*) from t;
count
--------
200001
(1 row)
postgres@postgres:1234 : 8182 #
\q
postgres@hive:~$ psql -p 1234 -h /tmp
psql (17.2 (Debian 17.2-1.pgdg110+1), server 18devel)
WARNING: psql major version 17, server major version 18.
Some psql features might not work.
Type "help" for help.
postgres@postgres:1234 : 8248 # select count(*) from t;
count
--------
103040
(1 row)
postgres@postgres:1234 : 8248 # vacuum t;
VACUUM
postgres@postgres:1234 : 8248 # insert into t select i, repeat(md5(i::text), 100) as txt from generate_series(700000, 800000) i;
ERROR: unexpected data beyond EOF in block 1472 of relation base/5/16387
HINT: This has been seen to occur with buggy kernels; consider updating your system.