Re: pg_rewind, a tool for resynchronizing an old master after failover
От | Andres Freund |
---|---|
Тема | Re: pg_rewind, a tool for resynchronizing an old master after failover |
Дата | |
Msg-id | 20130524150559.GF29374@alap2.anarazel.de обсуждение исходный текст |
Ответ на | Re: pg_rewind, a tool for resynchronizing an old master after failover (Thom Brown <thom@linux.com>) |
Список | pgsql-hackers |
On 2013-05-24 10:57:22 -0400, Thom Brown wrote: > By the way, without any data inserted I get: > > thom@swift /tmp $ pg_rewind --target-pgdata=/tmp/primary > --source-server='host=localhost port=5531 dbname=postgres' -v > connected to remote server > fetched file "global/pg_control", length 8192 > fetched file "pg_xlog/00000002.history", length 41 > Last common WAL position: 0/3000000 on timeline 1 > pg_rewind: xlogreader.c:214: XLogReadRecord: Assertion `((RecPtr) % > 8192 >= (((intptr_t) ((sizeof(XLogPageHeaderData))) + ((8) - 1)) & > ~((intptr_t) ((8) - 1))))' failed. > Aborted (core dumped) > > And this magically goes away with -k on initdb. That looks like this is a bug independent of -k. pg_rewind tries to read the beginning of a page but xlogreader doesn't allow that atm. The likely reason this doesn't happen with -k is autovacuum probably hints some pages which are logged when checksums are enabled. Should we make that assert Assert((RecPtr % XLOG_BLCKSZ == 0) ||XRecOffIsValid(RecPtr)); instead? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: