Running "make installcheck" with wal_consistency_checking='all' on the
master branch shows the follow failure on a streaming replica:
19696/2018-04-12 11:35:29 PDT FATAL: inconsistent page found, rel
1663/50192/66636, forknum 0, blkno 0
19696/2018-04-12 11:35:29 PDT CONTEXT: WAL redo at 2/6D8411F8 for
Heap/DELETE: off 4 KEYS_UPDATED
19695/2018-04-12 11:35:29 PDT LOG: startup process (PID 19696) exited
with exit code 1
19695/2018-04-12 11:35:29 PDT LOG: terminating any other active
server processes
19695/2018-04-12 11:35:29 PDT LOG: database system is shut down
I can correlate it with this wal_debug output on the primary:
18713/2018-04-12 11:20:40 PDT ERROR: new row violates check option
for view "upview"
18713/2018-04-12 11:20:40 PDT DETAIL: Failing row contains (a, 4, 120, 1, 1).
18713/2018-04-12 11:20:40 PDT STATEMENT: UPDATE upview set c = 120 WHERE b = 4;
18713/2018-04-12 11:20:40 PDT LOG: INSERT @ 2/6D8411F8: -
Transaction/ABORT: 2018-04-12 11:20:40.085145-07
18073/2018-04-12 11:20:40 PDT LOG: xlog bg flush request write
2/6D840000; flush: 0/0, current is write 2/6D840000; flush 2/6D7B40B0
18713/2018-04-12 11:20:40 PDT LOG: INSERT @ 2/6D841378: -
Heap/DELETE: off 4 KEYS_UPDATED
18713/2018-04-12 11:20:40 PDT STATEMENT: UPDATE upview set a = 'b', b
= 15, c = 120 WHERE b = 4;
18713/2018-04-12 11:20:40 PDT LOG: INSERT @ 2/6D8415F0: - Heap/INSERT: off 10
18713/2018-04-12 11:20:40 PDT STATEMENT: UPDATE upview set a = 'b', b
= 15, c = 120 WHERE b = 4;
18713/2018-04-12 11:20:40 PDT ERROR: new row violates check option
for view "upview"
18713/2018-04-12 11:20:40 PDT DETAIL: Failing row contains (b, 15, 120, 1, 1).
18713/2018-04-12 11:20:40 PDT STATEMENT: UPDATE upview set a = 'b', b
= 15, c = 120 WHERE b = 4;
In short, it looks like the tests added to update.sql by commit
2f178441 ("Allow UPDATE to move rows between partitions") lead to this
failure, since I always hit a problem when update.sql is reached. I
haven't gone to the trouble of digging any deeper than that just yet.
--
Peter Geoghegan