On 2021/07/16 16:31, Kyotaro Horiguchi wrote:
Sorry, I missed that the XLogReadBufferForRedo is expected to return BLK_RESTORED. And XLogReadBufferForRedo errors out when it tries to read nonexistent page without having an FPI (this happens for FSM pages). Rather than teaching XLogReadBufferExtended to behave differrently for the case, I choosed to avoid trying to load the page when the corresponding FPI block is missing in XLOG_FPI_FOR_HINT, as if the record itself did not exist at all. Since differently from XLOG_FPI, XLOG_FPI_FOR_HINT has only one page reference at most, but in the attached the decision whether to read the page or not is made for each block.
Thanks for updating the patch! It basically looks good to me. * Full-page image (FPI) records contain nothing else but a backup * block (or multiple backup blocks). Every block reference must * include a full-page image - otherwise there would be no point in * this record. The above comment also needs to be updated? Regards, -- Fujii Masao Advanced Computing Technology Center Research and Development Headquarters NTT DATA CORPORATION