Re: All-zero page in GIN index causes assertion failure - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: All-zero page in GIN index causes assertion failure
Date
Msg-id CAMkU=1w0+whCvz40sW7ptJXQ8S5G_HW_JvDeTyR816JM9+1OOw@mail.gmail.com
Whole thread Raw
In response to Re: All-zero page in GIN index causes assertion failure  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: All-zero page in GIN index causes assertion failure  (Heikki Linnakangas <hlinnaka@iki.fi>)
List pgsql-hackers
On Mon, Jul 20, 2015 at 1:23 PM, Heikki Linnakangas <hlinnaka@iki.fi> wrote:

I came up with the attached, for GIN and SP-GiST. Instead of WAL-logging the page initialization in SP-GiST vacuum, I changed it so that it simply leaves the page as all-zeroes, and adds it to the FSM. The code that grabs a target page from the FSM handles that, and initializes the page anyway, so that was simpler. This made the SP-GiST is-deleted flag obsolete, it's no longer set, although the code still checks for it for backwards-compatibility. (even that may actually be unnecessary, as a page that's marked as deleted must also be empty, and wherever we check for the deleted-flag, we also check for PageIsEmpty()))

This patch, in conjunction with the LWLock deadlock patch, fixes all the issues I was having with GIN indexes in 9.5.

I haven't tried SP-GiST.

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Proposing COPY .. WITH PERMISSIVE
Next
From: Jaimin Pan
Date:
Subject: Re: [BUGS] object_classes array is broken, again