Fix longstanding race condition in transaction log management: there was a
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Nov 2005 00:23:43 +0000 (00:23 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 3 Nov 2005 00:23:43 +0000 (00:23 +0000)
commit766d5f723374a164a6a163f66ac62c943a500ff8
tree923529e7bbbc86aef8910e19e83da7b358dd8f3c
parent98a94585f9183ff29755eeeef77d8b13f133030e
Fix longstanding race condition in transaction log management: there was a
very narrow window in which SimpleLruReadPage or SimpleLruWritePage could
think that I/O was needed when it wasn't (and indeed the buffer had already
been assigned to another page).  This would result in an Assert failure if
Asserts were enabled, and probably in silent data corruption if not.
Reported independently by Jim Nasby and Robert Creager.

I intend a more extensive fix when 8.2 development starts, but this is a
reasonably low-impact patch for the existing branches.
src/backend/access/transam/slru.c