pgsql: Fix some more bugs in GIN's WAL replay logic.
От | Tom Lane |
---|---|
Тема | pgsql: Fix some more bugs in GIN's WAL replay logic. |
Дата | |
Msg-id | E1S1kSh-0001CI-JV@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
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. Branch ------ REL9_1_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/57b100fe0fb1d0d5803789d3113b89fa18a34fad Modified Files -------------- src/backend/access/gin/ginxlog.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-)
В списке pgsql-committers по дате отправления: