Hi! On Fri, 7 Feb 2025 at 05:15, Anton A. Melnikov <a.melni...@postgrespro.ru> wrote: > > Hi!
> I noticed that the updated page is not written to disk because the > buffer where it is located is not marked dirty. Moreover > MarkBufferDirtyHint(), > which is called for modified FSM pages, seems is not suitable here, > since as i suppose the corrupted page must be rewritten certainly, not for > hint. Could you please elaborate? FSM changes are never wal-logged, so it is possible to read torn pages from a disk (their checksum will mismatch with the header), so MarkBufferDirtyHint seems to be completely fine here. I don't think MarkBufferDirty provides something different from MarkBufferDirtyHint in the FSM case (because FSM changed are not persistent). At the end of the day, you just should write a page on a disk sooner or later, and that's it. -- Best regards, Kirill Reshke