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