Re: BUG #15896: pg_upgrade from 10-or-earlier: TRAP: FailedAssertion(»!(metad->btm_version >= 3)«
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: myon@debian.org, pgsql-bugs@lists.postgresql.org
Cc: Peter Geoghegan <pg@bowt.ie>
Date: 2019-07-05T15:49:08Z
Lists: pgsql-bugs
Adding Peter G. to CC. On 2019-Jul-05, PG Bug reporting form wrote: > When pg_upgrading from 10-or-earlier to 12beta2 or 13devel, an assertion is > raised. (Spotted by Debian's postgresql-common upgrade tests. Previously > missed because we were only testing version+1 upgrades.) > > TRAP: FailedAssertion(»!(metad->btm_version >= 3)«, Datei: > »/build/postgresql-12-3URvLF/postgresql-12-12~beta2/build/../src/backend/access/nbtree/nbtpage.c«, > Zeile: 665) Seems that _bt_getrootheight is too optimistic about the metapage version it'll find. I suppose this could be handled by just not caching the metapage if it is of the old version ... or maybe by calling _bt_upgrademetapage(). -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Fix nbtree metapage cache upgrade bug.
- d004147eb3ec 13.0 landed
- 7772dece9850 12.0 landed
- 6523f2ed3441 11.5 landed
-
Make heap TID a tiebreaker nbtree index column.
- dd299df8189b 12.0 cited
-
Fix handling of non-upgraded B-tree metapages
- 0a64b45152b5 11.0 cited
-
Skip full index scan during cleanup of B-tree indexes when possible
- 857f9c36cda5 11.0 cited