>See https://postgr.es/m/CA%2BTgmoY4j%2Bp7JY69ry8GpOSMMdZNYqU6dtiONPrcxaVG%2BSPByg%40mail.gmail.com
>In more detail:
>1. there is a transaction open on the primary server (server A)
>2. the transaction inserts a row
>3. a checkpoint happens
>4. the transaction commits
>5. the session reads the row it just inserted, which sets hint bits on the row
>that mark it as generally visible
>Now the standby (server B) promoted between steps 3 and 4, which means that on server B
>(the new primary), the transaction didn't commit and the row is invisible.
>Now if we run pg_rewind on server A, it examines the local WAL to find all the blocks
>that were modified after the last common checkpoint (which happened in step 3 above).
>If neither wal_log_hints = on nor checksums are enabled (which effectively forces
>WAL-logging hint bit changes), there is no track of step 5 in the WAL, and pg_rewind
>fails to copy that block from server B. The consequence is that after pg_rewind, the
>row is *still* visible on server A because of the hint bits. That is data corruption.
>Therefore, the requirement cannot be relaxed.
Yes I known the step and I have check the mail link.
As described in the top mail we can find some way to solve the problem so that
pg_rewind can run without wal_log_hints and data_checksums.
Currently pg_rewind search wal start at checkpoint lsn or redo lsn, I mean to search more
wal to cover whole releated transactions so any releated pages with copyed, and we never
warried about hint bits issue.
Anyway, I wish my mail in right format. Because my last mail reply to Michael out of order
and miss from this thread.
---
Movead Li