Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts
От | Andres Freund |
---|---|
Тема | Re: pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts |
Дата | |
Msg-id | 20140530122005.GF25431@alap3.anarazel.de обсуждение исходный текст |
Ответ на | pg_upgrade < 9.3 -> >=9.3 misses a step around multixacts (Andres Freund <andres@2ndquadrant.com>) |
Список | pgsql-bugs |
Hi, On 2014-05-30 14:16:31 +0200, Andres Freund wrote: > When upgrading a < 9.3 cluster pg_upgrade doesn't bother to keep the old > multixacts around because they won't be read after the upgrade (and > aren't compatible). It just resets the new cluster's nextMulti to the > old + 1. > Unfortunately that means that there'll be a offsets/0000 file created by > initdb around. Sounds harmless enough, but that'll actually cause > problems if the old cluster had a nextMulti that's bigger than that > page. > > When vac_truncate_clog() calls TruncateMultiXact() that'll scan > pg_multixact/offsets to find the earliest existing segment. That'll be > 0000. If the to-be-truncated data is older than the last existing > segment it returns. Then it'll try to determine the last required data > in members/ by accessing the oldest data in offsets/. > > Unfortunately, due to the existing 0000/ segment, that means it'll > sometimes try to access a nonexistant offsets/ file. Preventing vacuum > et al from succeeding. For the sake of search engines, the error that triggers is: ERROR: could not access status of transaction 2072053907 DETAIL: Could not open file "pg_multixact/offsets/7B81": No such file or directory. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-bugs по дате отправления: