On Thu, Jun 16, 2016 at 1:32 PM, Andres Freund <and...@anarazel.de> wrote:
> With old_snapshot_threshold=1 I indeed can reproduce the issue. I > disabled autovacuum, to make the scheduling more predictable. But it > should "work" just as well with autovacuum. > > S1: CREATE TABLE toasted(largecol text); > INSERT INTO toasted SELECT string_agg(random()::text, '-') FROM > generate_series(1, 10000000); > BEGIN; > DELETE FROM toasted; > S2: BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; > S2: SELECT hashtext(largecol), length(largecol) FROM toasted; >> ... > S1: COMMIT; > S2: SELECT hashtext(largecol), length(largecol) FROM toasted; >> ... > S1: /* wait for snapshot threshold to be passed */ > S1: VACUUM pg_toast.pg_toast_16437; >> INFO: 00000: "pg_toast_16437": found 61942 removable, 0 nonremovable row >> versions in 15486 out of 15486 pages >> DETAIL: 0 dead row versions cannot be removed yet. > S2: SELECT hashtext(largecol), length(largecol) FROM toasted; > ERROR: XX000: missing chunk number 0 for toast value 16455 in pg_toast_16437 > LOCATION: toast_fetch_datum, tuptoaster.c:1945 Thanks! That's something I should be able to work with. Unfortunately, I am going to be on vacation, so I won't have any results until sometime after 28 June. -- Kevin Grittner EDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers