On 14.06.2013 16:15, Andres Freund wrote:
On 2013-06-14 09:08:15 -0400, Tom Lane wrote:
I just had my nose in the part of the checksum patch that tediously
copies entire pages out of shared buffers to avoid possible instability
of the hint bits while we checksum and write the page.

I am really rather uncomfortable with that piece of code, and I hacked
it up after Jeff Janes had reported a bug there (The one aborting WAL
replay to early...). So I am very happy that you are looking at it.

Hmm. In XLogSaveBufferForHint():

 * Note that this only works for buffers that fit the standard page model,
 * i.e. those for which buffer_std == true

The free-space-map uses non-standard pages, and MarkBufferDirtyHint(). Isn't that completely broken for the FSM? If I'm reading it correctly, what will happen is that replay will completely zero out all FSM pages that have been touched. All the FSM data is between pd_lower and pd_upper, which on standard pages is the "hole".

- Heikki


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to