Re: Backend crash during explain - Mailing list pgsql-hackers

From Zdenek Kotala
Subject Re: Backend crash during explain
Date
Msg-id 465EA410.8000409@sun.com
Whole thread Raw
In response to Backend crash during explain  (Grant Finnemore <grantf@guruhut.co.za>)
List pgsql-hackers
Grant Finnemore napsal(a):
> CrashReporter trace:
> 
> Date/Time:      2007-05-31 10:21:39.285 +0200
> OS Version:     10.4.9 (Build 8P2137)
> Report Version: 4
> 
> Command: postmaster
> Path:    ./bin/postmaster
> Parent:  postmaster [23091]
> 
> Version: ??? (???)
> 
> PID:    23096
> Thread: 0
> 
> Exception:  EXC_BAD_ACCESS (0x0001)
> Codes:      KERN_PROTECTION_FAILURE (0x0002) at 0x00000018
> 
> Thread 0 Crashed:
> 0   postmaster     0x00116ec6 ExecSetSlotDescriptor + 77 (execTuples.c:344)
> 1   postmaster     0x001182f9 ExecAssignScanTypeFromOuterPlan + 33 
> (execUtils.c:771)
> 2   postmaster     0x001240c8 ExecInitSort + 168 (nodeSort.c:211)

It looks that tupDesc contains invalid pointer. I found some strange 
assignment in ExecAssignScanTypeFromOuterPlan function. See comment 
bellow. OuterPlanState expects PlaneState structure instead ScanState.

00762 ExecAssignScanTypeFromOuterPlan(ScanState *scanstate)
00763 {
00764     PlanState  *outerPlan;
00765     TupleDesc   tupDesc;
00766
00767     outerPlan = outerPlanState(scanstate);                ^^^^^                scanstate->ps ??

00768     tupDesc = ExecGetResultType(outerPlan);
00769
00770     ExecAssignScanType(scanstate, tupDesc);
00771 }

Zdenek


pgsql-hackers by date:

Previous
From: Grant Finnemore
Date:
Subject: Backend crash during explain
Next
From: Alvaro Herrera
Date:
Subject: Re: ERROR: index row size 2960 exceeds btree maximum