]> granicus.if.org Git - postgresql/commit
Fix two bugs in setting the vm bit of empty pages.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 23 Oct 2013 11:03:54 +0000 (14:03 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Wed, 23 Oct 2013 11:25:50 +0000 (14:25 +0300)
commit4da24f12e63313b7dbb6b3e3d0317e04045df636
tree8f5cd7cb613cf476376b2856bf94be4dda817870
parentb89cedeffb9e5a4a4c9ac501c245ee92cf85aa5f
Fix two bugs in setting the vm bit of empty pages.

Use a critical section when setting the all-visible flag on an empty page,
and WAL-logging it. log_newpage_buffer() contains an assertion that it
must be called inside a critical section, and it's the right thing to do
when modifying a buffer anyway.

Also, the page should be marked dirty before calling log_newpage_buffer(),
per the comment in log_newpage_buffer() and src/backend/access/transam/README.

Patch by Andres Freund, in response to my report. Backpatch to 9.2, like
the patch that introduced these bugs (a6370fd9).
src/backend/commands/vacuumlazy.c