+ #ifdef WAL_DEBUG + /* + * If xlog debug is enabled then check produced delta. Result of delta + * application to saved image should be the same as current page state. + */ + if (XLOG_DEBUG) + { + char tmp[BLCKSZ]; + memcpy(tmp, image, BLCKSZ); + applyPageRedo(tmp, pageData->data, pageData->dataLen); + elog(ERROR, "result of generic xlog apply doesn't match"); + } + #endif
I suppose the elog(ERROR) call should be conditional ...
Good catch. Check condition was lost between versions.
Attached patches are rebased to master. Now, it checks that page images match except area between pd_lower and pd_upper. I've tested it with WAL debug and it works.