Re: BRIN indexes - TRAP: BadArgument

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Jeff Janes <jeff.janes@gmail.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-04T22:28:22Z
Lists: pgsql-hackers

Attachments

Jeff Janes wrote:
> 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:

Missed that, thanks.

> #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.

I was clearly too careless about testing the xlog code --- it had
numerous bugs.  This version should be a lot better, but there might be
problems lurking still as I don't think I covered it all.  Let me know
if you see anything wrong.

I also added pageinspect docs, which I had neglected and only realized
due to a comment in another thread (thanks Amit).

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

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>