From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Nick Withers <nick(at)nickwithers(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Segmentation fault in backend/access/heap/pruneheap.c: heap_page_prune_opt() calling PageIsPrunable () with NULL page on FreeBSD / PowerPC |
Date: | 2009-01-23 04:42:46 |
Message-ID: | 25822.1232685766@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Nick Withers <nick(at)nickwithers(dot)com> writes:
> I've been experiencing segfaults of PostgreSQL for quite a quite now
> (since July 2008, PostgreSQL 8.3.3, perhaps?) on a FreeBSD 7 PowerPC
> (7400) system (not sure if anyone really cares about this particular
> platform, but I'll try :-)):
Hmm, is this query accessing a temporary table?
> #0 0x0186a1ec in heap_page_prune_opt (relation=0x224c9f70, buffer=-1,
> OldestXmin=28440) at pruneheap.c:79
> 79 if (!PageIsPrunable(dp, OldestXmin))
> [New Thread 0x22401100 (LWP 100093)]
> (gdb) bt full
> #0 0x0186a1ec in heap_page_prune_opt (relation=0x224c9f70, buffer=-1,
> OldestXmin=28440) at pruneheap.c:79
> dp = 0x0
> minfree = 4294967295
> #1 0x0185f790 in heapgetpage (scan=0x22970d88, page=0) at heapam.c:216
> buffer = -1
> snapshot = 0x224af818
> dp = 0x20100 <Address 0x20100 out of bounds>
> lines = 184
> ntup = 28449656
> lineoff = 0
> lpp = 0x10003
Buffer -1 should refer to the first local buffer (ie, the first one used
for temp tables). The value of dp seems to indicate that
LocalBufferBlockPointers[0] was zero, but that should certainly not be
possible if ReadBuffer returned the buffer as valid. So I'm confused.
Can you extract a self-contained test case to reproduce this?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Nick Withers | 2009-01-23 05:33:48 | Re: Segmentation fault in backend/access/heap/pruneheap.c: heap_page_prune_opt() calling PageIsPrunable () with NULL page on FreeBSD / PowerPC |
Previous Message | Nick Withers | 2009-01-23 03:11:48 | Segmentation fault in backend/access/heap/pruneheap.c: heap_page_prune_opt() calling PageIsPrunable () with NULL page on FreeBSD / PowerPC |