Re: BRIN indexes - TRAP: BadArgument

Jeff Janes <jeff.janes@gmail.com>

From: Jeff Janes <jeff.janes@gmail.com>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: Robert Haas <robertmhaas@gmail.com>, Heikki Linnakangas <hlinnakangas@vmware.com>, Erik Rijkers <er@xs4all.nl>, Emanuel Calvo <3manuek@esdebian.org>, Simon Riggs <simon@2ndquadrant.com>, Nicolas Barbier <nicolas.barbier@gmail.com>, Claudio Freire <klaussfreire@gmail.com>, Josh Berkus <josh@agliodbs.com>, Andres Freund <andres@2ndquadrant.com>, Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2014-11-04T10:07:19Z
Lists: pgsql-hackers
On Mon, Nov 3, 2014 at 2:18 PM, Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:

>
> So here's v21.  I also attach a partial diff from v20, just in case
> anyone wants to give it a look.
>

This needs a bump to 1.3, or the extension won't install:

contrib/pageinspect/pageinspect.control


During crash recovery, I am getting a segfault:

#0  0x000000000067ee35 in LWLockRelease (lock=0x0) at lwlock.c:1161
#1  0x0000000000664f4a in UnlockReleaseBuffer (buffer=0) at bufmgr.c:2888
#2  0x0000000000465a88 in brin_xlog_revmap_extend (lsn=<value optimized
out>, record=<value optimized out>) at brin_xlog.c:261
#3  brin_redo (lsn=<value optimized out>, record=<value optimized out>) at
brin_xlog.c:284
#4  0x00000000004ce505 in StartupXLOG () at xlog.c:6795

I failed to preserve the data directory, I'll try to repeat this later this
week if needed.

Cheers,

Jeff

Commits

  1. Refactor per-page logic common to all redo routines to a new function.

  2. Reduce use of heavyweight locking inside hash AM.

  3. Scan the buffer pool just once, not once per fork, during relation drop.

  4. Major patch from Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>