On 2013-06-14 16:58:38 +0300, Heikki Linnakangas wrote: > 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".
Jeff Davis has a patch pending (1365493015.7580.3240.camel@sussancws0025) that passes the buffer_std flag down to MarkBufferDirtyHint() for exactly that reason. I thought we were on track committing that, but rereading the thread it doesn't look that way. Jeff, care to update that patch? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers