diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2012-02-26 15:12:17 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2012-02-26 15:12:17 -0500 |
commit | 1b630751d0ffef4c856bfe382889d0d187eca404 (patch) | |
tree | 498b11794df15f582f9e3f9137fcd15c719a44b9 /src/backend/access/gist/gistproc.c | |
parent | b5c077c3685c1b122c10c7ef03ff4c07abe786a3 (diff) | |
download | postgresql-1b630751d0ffef4c856bfe382889d0d187eca404.tar.gz postgresql-1b630751d0ffef4c856bfe382889d0d187eca404.zip |
Fix some more bugs in GIN's WAL replay logic.
In commit 4016bdef8aded77b4903c457050622a5a1815c16 I fixed a bunch of
ginxlog.c bugs having to do with not handling XLogReadBuffer failures
correctly. However, in ginRedoUpdateMetapage and ginRedoDeleteListPages,
I unaccountably thought that failure to read the metapage would be
impossible and just put in an elog(PANIC) call. This is of course wrong:
failure is exactly what will happen if the index got dropped (or rebuilt)
between creation of the WAL record and the crash we're trying to recover
from. I believe this explains Nicholas Wilson's recent report of these
errors getting reached.
Also, fix memory leak in forgetIncompleteSplit. This wasn't of much
concern when the code was written, but in a long-running standby server
page split records could be expected to accumulate indefinitely.
Back-patch to 8.4 --- before that, GIN didn't have a metapage.
Diffstat (limited to 'src/backend/access/gist/gistproc.c')
0 files changed, 0 insertions, 0 deletions