agora inbox for pgsql-bugs@postgresql.orghelp / color / mirror / Atom feed
BUG #19687: ALTER SEQUENCE provokes error XX001 could not read blocks 3+ messages / 3 participants [nested] [flat]
* BUG #19687: ALTER SEQUENCE provokes error XX001 could not read blocks @ 2026-09-14 05:00 PG Bug reporting form <noreply@postgresql.org> 0 siblings, 2 replies; 3+ messages in thread From: PG Bug reporting form @ 2026-09-14 05:00 UTC (permalink / raw) To: pgsql-bugs@lists.postgresql.org; +Cc: exclusion@gmail.com The following bug has been logged on the website: Bug reference: 19687 Logged by: Alexander Lakhin Email address: exclusion@gmail.com PostgreSQL version: 19beta3 Operating system: Ubuntu 24.04 Description: The following script: psql -c "CREATE SEQUENCE s AS bigint MAXVALUE 1000000;" for ((i=1; i<=100; i++)); do echo "iteration $i" for ((i=1; i<=100; i++)); do echo "SELECT * FROM s;"; done | psql >/dev/null & for ((i=1; i<=100; i++)); do echo "ALTER SEQUENCE s AS int;"; done | psql >/dev/null grep -A1 "ERROR: could not read block" server.log && break; wait done triggers: iteration 3 ERROR: could not read blocks 0..0 in file "base/16384/16597": read only 0 of 8192 bytes 2026-09-14 07:53:16.554 EEST [2078499:4] psql XX001 ERROR: could not read blocks 0..0 in file "base/16384/16597": read only 0 of 8192 bytes 2026-09-14 07:53:16.554 EEST [2078499:5] psql XX001 STATEMENT: SELECT * FROM s; This error is easily reproduced with io_workers, but it can be reproduced starting from 3d79013b9, with increased number of iterations and SELECT clients. ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: BUG #19687: ALTER SEQUENCE provokes error XX001 could not read blocks @ 2026-09-14 19:07 Ayush Tiwari <ayushtiwari.slg01@gmail.com> parent: PG Bug reporting form <noreply@postgresql.org> 1 sibling, 0 replies; 3+ messages in thread From: Ayush Tiwari @ 2026-09-14 19:07 UTC (permalink / raw) To: exclusion@gmail.com; pgsql-bugs@lists.postgresql.org Hi, On Mon, 14 Sept 2026 at 20:23, PG Bug reporting form <noreply@postgresql.org> wrote: > > The following bug has been logged on the website: > > Bug reference: 19687 > Logged by: Alexander Lakhin > Email address: exclusion@gmail.com > PostgreSQL version: 19beta3 > Operating system: Ubuntu 24.04 > Description: > > The following script: > psql -c "CREATE SEQUENCE s AS bigint MAXVALUE 1000000;" > for ((i=1; i<=100; i++)); do > echo "iteration $i" > for ((i=1; i<=100; i++)); do echo "SELECT * FROM s;"; done | psql > >/dev/null & > for ((i=1; i<=100; i++)); do echo "ALTER SEQUENCE s AS int;"; done | psql > >/dev/null > grep -A1 "ERROR: could not read block" server.log && break; > wait > done > > triggers: > iteration 3 > ERROR: could not read blocks 0..0 in file "base/16384/16597": read only 0 > of 8192 bytes > 2026-09-14 07:53:16.554 EEST [2078499:4] psql XX001 ERROR: could not read > blocks 0..0 in file "base/16384/16597": read only 0 of 8192 bytes > 2026-09-14 07:53:16.554 EEST [2078499:5] psql XX001 STATEMENT: SELECT * > FROM s; > > This error is easily reproduced with io_workers, but it can be reproduced > starting from 3d79013b9, with increased number of iterations and SELECT > clients. Thanks for the report! I was looking at it for some time partially. I reproduced this with io_method=worker. AlterSequence() takes ShareRowExclusiveLock, which doesn't conflict with a plain SELECT's AccessShareLock. A scan could still be using the old storage when ALTER commits and removes it, which seems to explain the short read(?) Would it make sense to take AccessExclusiveLock at the initial lookup? diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -447,7 +447,7 @@ AlterSequence(ParseState *pstate, AlterSeqStmt *stmt) /* Open and lock sequence, and check for ownership along the way. */ relid = RangeVarGetRelidExtended(stmt->sequence, - ShareRowExclusiveLock, + AccessExclusiveLock, stmt->missing_ok ? RVR_MISSING_OK : 0, RangeVarCallbackOwnsRelation, NULL); Regards, Ayush ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: BUG #19687: ALTER SEQUENCE provokes error XX001 could not read blocks @ 2026-09-15 06:57 Alexandre Felipe <o.alexandre.felipe@gmail.com> parent: PG Bug reporting form <noreply@postgresql.org> 1 sibling, 0 replies; 3+ messages in thread From: Alexandre Felipe @ 2026-09-15 06:57 UTC (permalink / raw) To: exclusion@gmail.com; pgsql-bugs@lists.postgresql.org Proposed a fix: https://commitfest.postgresql.org/patch/7303/ Thank you for sharing. Regards, Alexandre ^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2026-09-15 06:57 UTC | newest] Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-09-14 05:00 BUG #19687: ALTER SEQUENCE provokes error XX001 could not read blocks PG Bug reporting form <noreply@postgresql.org> 2026-09-14 19:07 ` Ayush Tiwari <ayushtiwari.slg01@gmail.com> 2026-09-15 06:57 ` Alexandre Felipe <o.alexandre.felipe@gmail.com>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox