dbTalk Databases Forums  

[BUGS] backend crash with certain statements/tables

mailing.database.pgsql-bugs mailing.database.pgsql-bugs


Discuss [BUGS] backend crash with certain statements/tables in the mailing.database.pgsql-bugs forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Jeff Bohmer
 
Posts: n/a

Default [BUGS] backend crash with certain statements/tables - 03-02-2004 , 10:34 AM






--============_-1133877918==_============
Content-Type: text/plain; charset="us-ascii" ; format="flowed"


Reproduced in PG 7.4.1 on ...

OS X Server 10.2.8
OS X 10.2.8
RHL 9 (2.4.20-30.9)

Running any of these statements on my database causes the backend to
crash (example from PG log below):

create temp table foo as select * from server_prefs limit 1;
create table foo as select * from server_prefs limit 1;
create temp table foo as select * from agency_dbs limit 1;
create table foo as select * from agency_dbs limit 1;


All of these statements produce expected results (no crash):

create temp table foo as select * from c_group limit 1;
create table foo as select * from c_group limit 1;
create table foo as select * from server_prefs;
create table foo as select * from agency_dbs;
select * from server_prefs limit 1;
select * from agency_dbs limit 1;


Attached is a file that creates a database and only the server_prefs
table and then reproduces the crash for me on both OS X and Linux
when I run it like:

psql -d template1 -U postgres -f pg_crash

Thanks,
- Jeff



2004-03-01 10:32:24 [471] LOG: connection received: host=[local] port=
2004-03-01 10:32:24 [471] LOG: connection authorized: user=username
database=cos
2004-03-01 10:32:34 [471] LOG: statement: create temp table foo as
select * from server_prefs limit 1;
2004-03-01 10:32:35 [19913] LOG: server process (PID 471) was
terminated by signal 10
2004-03-01 10:32:35 [19913] LOG: terminating any other active server processes
2004-03-01 10:32:35 [429] WARNING: terminating connection because of
crash of another server process
DETAIL: The postmaster has commanded this server process to roll
back the current transaction and exit, because another server process
exited abnormally and possibly corrupted shared memory.
HINT: In a moment you should be able to reconnect to the database
and repeat your command.
2004-03-01 10:32:35 [474] LOG: connection received: host=[local] port=
2004-03-01 10:32:35 [474] FATAL: the database system is in recovery mode
2004-03-01 10:32:35 [19913] LOG: all server processes terminated;
reinitializing
2004-03-01 10:32:35 [475] LOG: database system was interrupted at
2004-03-01 10:27:58 MST
2004-03-01 10:32:35 [475] LOG: checkpoint record is at 5/1350BF6C
2004-03-01 10:32:35 [475] LOG: redo record is at 5/1350BF6C; undo
record is at 0/0; shutdown TRUE
2004-03-01 10:32:35 [475] LOG: next transaction ID: 374025; next OID: 46414656
2004-03-01 10:32:35 [475] LOG: database system was not properly shut
down; automatic recovery in progress
2004-03-01 10:32:35 [475] LOG: redo starts at 5/1350BFAC
2004-03-01 10:32:35 [475] LOG: unexpected pageaddr 5/9570000 in log
file 5, segment 19, offset 5701632
2004-03-01 10:32:35 [475] LOG: redo done at 5/1356EB8C
2004-03-01 10:32:38 [475] LOG: database system is ready



--============_-1133877918==_============
Content-Id: <p04330103bc6926ccf631@[192.168.1.201].0.0>
Content-Type: application/mac-binhex40; name="pg_crash.gz"
Content-Disposition: attachment; filename="pg_crash.gz"
; modification-date="Mon, 1 Mar 2004 23:46:03 -0700"

(This file must be converted with BinHex 4.0)

:#h"RAf0bBA0S,QGk!!!!!!!!!!!!!!!!!"lb!!!!!#N$(iX)# $[,3d!!!h"RAf0
bBA0S!1`mDA2EZ*+IP9r"I4pQiLSk)e+LMNaYeIT+l,Hfil@FT &l9&Pbd"%Q-+8,
$`ikRm11h'`4*!)4SCICYl8lY*"#*2SLM!65k'k6IR0bH(GfG1 DG(GdI(4l-cCmk
bApqmNGMCfApm2VXq1A-bQMl4p(kEdQ9fRp)j5aI4iMkM[c@mm2bPcZLmIH2![iV
GLC+FVQMUR*jp12TmHHFNp([q&-C[IrlEcZ,rp[2lpcQ`(6MARqkFkmqAPkiS-e`
X8TTPRM0IKfNick(8Tc"pLC,9@cm)$M3Q[j2T)8`5QQB@(S2MIY["-`pMQLc#G!q
@lR+Lr+@cZI-iSNQq"`[)Zj1*&3P5j*KSb2Y&Q&0(A+UK3Z$Yc`PlhM%HeC0EHi&
&%[e@8)1@8LMdMp492TK('qU)bh18VeQ4Pm$[,'Q+dSU"'c#m(4f)"a4ZSrJLbpR
Q2Pa4L`#p2[`ld"LVFD92pS'a2V,CKY%UfC0EM'H@KhPKQkD@*fLq6U)G8mR# (SI
*UYLl[c'EKhR%pQ`m5eFrd[+8VU)X6d8&2r*F(UBVQQqCE@eCf*pCqTLrE&rV-9e
%q4qBS1+arkRT+3Uh,Qk[E[ChN!#J668'ICfPreVrNFZQ2Sf#"TfU4V!-1j5HB!K
HBaMTkN2J*[YdB2S+dc*P5Ek&qAqrcMIaIC6-if*KQaT"j`1GHRh0X[`q#6HfBKY
*98ZVHeZVZ,VhYBV,0MB9$fl!@8i0TCeNpl$d8Y($cLUfBEjH4 XR#h%Df-9fXk(a
10f%8GjG3FS)i8aEEPVV*ZQq4,&p6ffCXmZ(+XdPER4m0TdhLG NkEe&91d(0cYYQ
!ASr$"pVG)q39DQ[*Q,*P'hUKjPV6F0(&*84Bk9RBXESCXjH-EEYiYP!-$6GaP0$
GE#Rp64TMh6c,C44(jHl5a5HfYLk'"A[ST*I6U*YM'l1A,MNL8lh2GR'YD0)j)-#
bCKZkAE0A4&M[[&e-Z'Yf&r0le$'JfCSplc8-b#LRF$I6kj)8A+q,%YPHNbAb+*k
'P9kE1peFV`SEZB5HH@ANN!!2$BiZYQ`1#MicrosoftZe[Z5alV2Q&cGHi2NfDZNlVeGmZa
9NXd%D2(X94,JlP(,GQaY1Q2RhP`kRkT*"54cI$CKRNEIa4Eqb LLTR$B$bmlkbS!
TR+m-L-,jLX!96T[aCHFFlFdjhT[6CXAC1@fQA*Xc4j8$@V$E"'jaf`CV0hZh@@a
b@kf`RGa@BhNRYp9bhXPY'm$Gh,C"h-eY'mMGh,E"9,M&2YBjh#pCZ0K%bIhV4Q(
0LJEl$Y2-C(h9@Umj5mAHaCU(@`TfNXdI9eMf0,ZI-KN5Q$1VQe,lJ5HIVQGhYdF
AehGQr%ih+%r1cdlqhARlpUe*q&HRIq"mZR8X"1rJB0pDT%(DV N85fVA8K,eU-3e
DY5+6TYE9TZeIA@N@YfSUdDe++[5HjDXQY9k&5Y&Vd5Pl9D3Bj@SY#PUY3N2[AEj
L5CTe+#5c(SfdEeh#H$3U%6LMG)REYeKd*Ba5%@88@U,f,E08@ %DT*G)SYd,ZAl)
dYPZ&5hbVr"UrGa@eT@l@842-5K6#[V9)3pqS3Q+0mQ[X[S8hlTC4IN-`UP!*qpC
5Ha"'*6AHU%2"leY&Z8NDjCG)Sr!+Z@r*k#3Dj5,++,9%l9@Qk 9LUKCXdYCBfEHr
U+[I8V+V#Qp8dq,fVX+ihM@"@mU-V6RH1@p9Beja*fEXLbkT6d'B92lEZT'YZPJd
SXeb"fV[-fTdh5ki*C[N+BIpDE)YC)l4UqF(PE)36c(S8NPQ64YUlVLBNB9E98-b
D9!T@p1EJecG[hTamZ[Q(FI"ERH'kp8PYRI2GkN69EBj@hITie&815Pea(ZV+%df
h2YPdUi0&9cZbE+#YDa`pZZTaSkXH)EV+JCpV2G0cc@-lehBbjlB1heccI-deMp$
FeLQCZrXJc'fGGERQFCEER&Ljc5Q8@jdCZI,BTlVhCFDApi'm$ q8pN!$hNEa2j(h
UlMJ#fBA(mDK230cQQ+2*qNd@@P'G5lMD@B5V($LiqL'$Dj`NZ 1TaJDZH#EKUi&m
&I"@!0KJ4HYF-`lYQa0fe"0GG2BlZYN,QVKiGGpZ"F&H*HEY0H0Y9)pQZ%E4fcI L
dUi@LA62Ul"S"CPH0*EY0f0Le4)KG)aMXQR&IYaALGI9SVYX%E Pdc4ZZDi9Lh(AP
e@d&@YiU9ZNh3Y-VkEK2qV,)$Y`PN9YQKfi3NA51FD-+#3dB4A6d#D)"p(ICeF+#
$3ad-G(#NJf-GR1MJe'h(ZbbSIK[RYe'$0QVB4J9Ye+L0'VG4NcB+Qer146hSiqU
4(9H2hVK'L-DYic#Z(QjapCM+JI2KpY-9e,L)NPrIH-0"lcq[-I9kAJr[Ak)-CZ*
PP$`kac32RCNBHZG3a2E6*)bG)U-15q+AhTI,hMM`*el2QdkRKelrd!pkIRq-T5L
Br[6pd(X2D)pij#L1RD-9cHS-piPI!SXLcM-Pb`GN)-"rX#*I0cNq*%0bNp)Nc-1
ic[#!"13i5[(P!ZEicJX0dkb&i#-b)MiLKT*$"ILBM-N3%50*93%q)4-b3S4A&Dp
"I%UQa"2PH42*S)2Fka0-%p'LUK!Gj"k)b51qH("3Ye)$ZHG$b@3J@MF-*)m1FQp
!)!%)b+$Ld8(Z$3QN3#"(&Bm1FLmJN!!!$*1&`f*3D4V!aE"H8 CU$[UMZBP"R@cU
2B,UFSCQK3f*S,qNm,e*DhF@`IJ8P"mTZ@fI%X(j#E9KHa3$1e L`&aiF9D8Be3!c
J9dSI3I9@G"d8JcLMX'V#Y,U,JEZQcp866EEXh1FNbZR#q4U#K b+0*"Y1G2UB&E&
`-X#mbTbM*#QJckGTp%3l5'8e4r-FfFUE+1`'YQ+`#('@9cNKZ4[B3")8Gj84X[Z
811F`*09G5!kkJMmKY@Z@1aHiKN&*d)8"PT+,m[8L$Cq6*PI+UmLfZ*NYQTb3!0N
Yr3CM"qJU)bIi5F`b`*Bh1D([30Qa0%aIQTcXpM+0jQ(L('fSb2ab()IcaahS8PY
NN8Ui#HI4-TSl&aP)!kIR+h3K`T1`Q)I)pm[A0BbN#3Z"RNIC0S40rCG,f*`6CX+
PJ%-FVDDbLf3"KHa!Pj-AGCJMfUMQa3"FJGk,dK!ALTSAJk!X!L%hdCCXAGe,B3S
K1HIKmk1595GQG4G#1%iC'(`4K8R6C%AA6f#fT6!p6m#Jd3$4k 91D`*BJEk*6CfP
%a89dib0UKN6H412r$KX@'*-`XqUFQ%'Ai6*mS6N-3*f6FqL5*DX0',ae4XkMD`U
Yai&XFP)GANGJ0T9AUIaQa4ENcp)kXfZKRB6*R-BacYNU*`4dNB3PEjACDk'eP`8
+aED)8$5fKB'LJFdaQD0fUCTQ)[jrDid(X%*!UDqM'(b,a)4,25%Y#X@D-*4+eXB
)S8K4ch*`"64!L%HXejCD83YpK8%)pMM-8B`,j`UDV`*#U$AL+lJaL3%+m4kcPda
FK&"V3G35N!"#"3HlJ(Uc*LG&HdUA'!8!$er*bU9d'QAK!mkj+ L-A9!@#0AK+RfM
-YZJ8KA(mdN'59SE#F'9jk+VQ&[D'3VPC[f3J0S1r`A*[4#!"$DcT14$238DEm"%
e9"[([6'"G-S5"N)TEpbEJ"8Q!5Ml1'CXiIcNI%TAS+6YD1k"X6GYL"r!NNL% iQk
MZ0mRN!"U`NFS*i1#d,51jM6E6H%qQ))H1819$IfAGql$p2E*K h!$ILSmAQ@i2b#
3!#T30,PFJ@d8piF%NN)iMCjB1YHC+ach!`,T)jJl-&$#qVZNf81%Xpf'j$kBf52
b-8VMV,abId`JRB00#DV(Z8#E#5Idfe-D,JpfiENr)C!!M*eA@@Sl+GbI%NJilX,
LFQk!!H0C&K3Ip!NN*$b`!VD@1XF((S'%F%bcV-l`!CMI2VQ)i`62$!qGSi[6Q3(
b!DLFJB)8QMYY)IKJ#,DlJVj)YQA$E$Jq#!LNKP)ZR"D#$dB%8 S1qTJ9ip@b&LfB
(QJr'"&*$&0B'6)+-KKR-Xed%2TJ35!Ujb0YGD*!!I$!PN!!DdKe0d4+2,5Jql"0
)&jY0Y-+J8j2M3ip!ZNL@3SR*1ark"0)PH`DCc@'iP#`IJN-d!#GP!Ef&mEm&Pf4
E6JS,MJpK+aJ59-qSPBF"H%rNUU`lUc0m1#+3!+jJaH5i6e8C2J4AFPb$1#I+REU
&iF-*JD6JEm'*JM9J3I(KP%"5#&mSE!bi%L`i([3*T#YB'#QHP4`kCb*+jE$8ZC9
@jQiD$c`#k5V+-PbC0l"eX-3!HH!65)DjQl832"J35*q@br*8"IU1'hEDa[!!(0+
KLMrlIXJNP1h#m`!fjN#PISM5,(IZ)TJ!9L`24J553VY)0Q&1-`Z+"f-#55(m[3!
h0STelKV*J`Q"T*!!EN*BC&4RVh!mQ"*)#Z9,"!5BkQd8(r8*T %mYHB"0i4&)8+L
Bcr,14ck"*#%SC`CM&p-@JSm'"&+$[U-db8bBMiCN*')[U`5ABTAK)``3e##1*GT
F,33IJH%c8Y&BE,L#H@$"mG'B3,UPbf+&SUXbI$3KN!"ZD4bY) PD!+ph%Dl-GD$k
D%NLh44)qKf!h94NqlK0)-aJhQ2IJi%5rBlm0Q)mp!QP'[aGSF*3cG@(#I1`65$A
f2%c$611V-(`m)*!!CNa%4'CdASJPU+LMh53q(K*)XlaBP*`b`mF"J95"p4L B#$i
H%8JU1RGZSqc4JZ*M-%A(+Z'%JHHaSKB8(dm)*)f`f45*10He2@83qAK+)#NXTbR
EJRqFfA"mdLH3!"6+@8b&`3NUf)VP%ip!8QQc5`2N%jp!8T!!( eK+-Gc64[(*J%"
5#1I4DZh-jQ['iKeS2KQ5b9!PAN@,48`Y6fN%2JR)*0$*TGUfiIKN4#ED#*Hlp 3h
,mX--6j%@KT4XG$iCNiNfpV"%$pX0EE"m!Qk*0J2Zm+!4`f3r14qM*E TmA83qQ4*
)Xq)Kbp%`NKY#eXE`DCp!DZ&ajXCcYXB@lUEaU8FJf6K1df*PU DqLm+P2)0RSX%$
C%hTSh93q(4")PBV,QKbI$JQNcmQ#cBY0+4N-JJ,TPeZD4H9UlbEcD8!JIBR!VYM
)'jq1#+35`)@AiTDSJh`k*T!!DL5k@H$HTfd-Rdi)T"Tr'fkT$[%TZ+26"JGZFrb
)8BF@"Ma8G&(l$89ZFQBE063m"HiVr2#F)NH[k5IRMS'@c%!m&Kc`JdX,2k#9@VK
a-BlM+&NFl+E!Xq$f`Zm,Lr'm(3HXb3)9(0Xq"Uh445mpFkm2lL[mj0K8Gm#$N`S
r#8Z4#KqlM3*ZF&,Kej!!cXVcaS8&"GcJ[X+[)F'qR4rLkEJ0"rcJZX+[S69K&JZ
1HaK+J*p#5m0)K*,D+1$'m)+RN!!q*l6GqJCC"R4+bbb-&JjXN4'Z)"K2'l)-l6b
MCB+HJSM,`6k04dS@C"RRM&E13eTq03IE1TD%N9!E9S4rMPQB, T`0h6b)J'N$P)G
-"4M!STE&8j5aY)83iCf6'*U-39ARUCSa0T`)pTc%`Nb1QejD8#,SFe*q)!m9iBN
a0H%b&!4EDj4$i9826%3G'K*Em&`D6MSSJd5!h"Ei6R4@(Yp!8 f`i'6BkBHa4A'5
ik!4Fk)c','eb-KJ%5aQk*9jMN3`'SJS$K4'XbaJ'%eb1V0M#M-bYb#S)K-FTUEc
*8-m(M'SlH4TY&IRDN!!b$23"Sc`,I-FKHLK3''f-$2jm+*)&6([dKp5m$2Gm&1p
G2m1@$#e5!4R8qCLbBZ[%jG[J-!'EaZfNb-$243*0+HDJkI6RGZ"P@1L5VR!qb8Q
V36)BG"AL'@mL0Lq-jU38pH%1Y!`*AB@`SXZc[bSRJcmBKf"TH5SSFc))p'QaF,k
aKkc1b$#2M-Fik)KVJ!cQL-#eA+hipT!!H"2&MT8KRC[L)3DI&QDUL!IUS!cZ`1C
-YcLU@*J+b#!2S0*#$'+GNk'G'CJ`X1TAiRbcbFZ!6RAL5EAc6r V8"(%Uh$CP'!R
2@JJCa*RK$-I&%FlAf-f8,X'BS,[`-Sb$1k#c+X!d8,)b9(0A`)#89plcqrhKBAp
`f2GkR[rH(liIM0j04Y0aIp+E6+EHX1HjAZ$kr6,pkQ[33)1''K5iAKp6#BddfPL
$*M8E3P10KQ@SS&IR"HM,[&H#!adFkQ#JJb1pU,%16R4`US&+(X(H3rM`iS+5!"-
)hrfEJkT`R56FJU8$B,CQ&,%aEMIiDQ$d!&HDcpreqUlmrqZI1 `HlH%kcr0qHa2X
MB$mp[Q2TLK#[rJmEI5rSqElBldmCRJ2#BLbY1e!YXc@0FCAYT)LG[iV!eZ`Q3Zc
iKK(Z9#Bb,UilI$eb)pEN2Pc#)K!['4aL60)jCi93q'e8kef&hLPGKZL%H`6rP9G
5)@%6"[-ra[GTR"GFS2L(0&EV22XAhZ[emR!,RKMXBLM0Gr2+A@BC5VA(XZPd!Z,
dHRha(lUq05328LBJ-H+"31!b"#M!c!J[Bla-m0+c$"Uq`(-6BfMA@8BaINVZJ(h
XE%280Q`*$B@YHXQJjlJGc%'P2MSX!65&lIJ"E!d(YXNFQLeI, G*k+IB5r+VD%8)
V#mYH`2MD1"PcRUQ$jh%V$"m#2qa3p,F#hqlIBN!i`fCQld@r2 ANYFqEr[L@Ad1I
b4EBH0#R$VDVAqaBQ"4Lj2D%&3Hj5Y29K+mMJ+K3Z@XrVpr$9N !#2B'2LFIKR++Y
hR$)X8eM,q#jA$ep6%QTm'Fd&m$&Q$f%XXPmLqL`bem`jQXpKd [Dq*5&@liMDTbe
0UbPD6FpUDPB"4Qk(NP@!UDZVf$ddV+pV@&rAX,kZBIerZSE9@ k8h5Qq6hL5p4AU
$p2EScG&EiqQYq6mVScqm8fYcU(1ReQE4(pLTrrGPT)VS[lr%91(mb9IBApTRceQ
M!!-9'+T!S!)M&6"QM3*-93!Ae*p"-VV18BJYRD23!Jhk)Hp!E9aI"rmN-[S4$qU
2bHJ[[D`+jdqZHc5U"[ePqC3b!MI$jXQFheeG1PIi(8-HVM)-V$b"LqH%q"($XSL
Gjr!&hhDAReB*&bC+d,8T[fi-(r"['`Ur*B[!#FRABHk%fbfq'BmZ6)E[%Q8!cGF
169BB"RlRI&e(-A85PJZ[5DG@mFUQ6DkcB9PHZPA8fB6I-(U(R!XQh#[![SK2,T!
!r%KIRPQk%)3&cHCT*)*99Er`Ed-*2LLibTEIElecCV3X!YS&K6r3Q$eMT4&'qI2
b6k@CrAl'hS*dUMmDL,9LYb5XILTb$JlS,kIdU6IS$`k(IIq`l ih4m8+Ajfbcc9r
Z`ZmXBCXAp))jM0BEr+XN[R332AN[drR9aD`q6m#26,cTG$a!"fe`L#@2K-X,S#H
q-!(2cRXrQ,`Ip2qTAjMd$m92128"9#3Z)V6[3Ef$mLV#ppl`%#2(H"9"HQpkk!I
P936NrG(K8&jPk$hS(ik'j98'fPrj[Z))*JdicL*USH6,PjIVSr32,#df*L`kDAk
I)Glm95)9f-QZlc@`fp@)B+5arNl$KK4#!CmIMj)a)*R-U3%+-AfP$q)V$(N[1hV
pAqfGE92M0K#!2bHr3[h8DbF(#@mAVPrU5`b%#diDKk2--,daB#$&L4Nl18TrIDA
GY5cj,8iSdalib#9D@8jXfC+PhAe@r0D(0cV[Eml%%cDa1)ARV2N+Lc-mQ)#60(k
Jqlj`DjBqc9PHbLTrm$lb98TP`!mQ(*U5-Yj*Q@kr1GRSCKp4"h%+$TD!!q)-418
V0-!QAVK8$P6lkHaq*YcXk402d5C8`&C4!H2DQBD#FjR0Rc3"fd[J2$Kh[LX,k$+
De5+J"B[S)KV5*&8J#b9ci(`lGml0M5Yr6"I4R-Cl3AFf8iTSFQ4'FrM2"kjl,iZ
PXNKehh8ph[p5+9@!@a2*KRLc)N',l[U,@mq4YDH,T2ihR9Y2(UiU8"pJHQcSK,i
XSBR8+jMHTBY`%aC4*$)K($U"9Vm*Q3acKa2[J6m1SM+U4#B'BCq+[d34b*K`Z*M
a@mH2[d1AbDa`l&cG+i9dNBb#abkrYS&D+T&"hU'I*h2KTDX861@3!'p ShlQA&Df
NbG6BGi6E3(6j0Jq3!"B6H'YBY)fm5rR$lFVhj#(SS[3e[AAL%ST!4X`60icZVNf
XfZ2&l!SXLrQE)Pp9rqE'NAH!*NAqU6"d#GfiM#C(IUYqS"bN* T%C$*f!q0RlJA2
Y*d3bK3d@-&#a"DfU#@4q(6U"E(T+QRaNKhaFj%dHC,0*b13a1jc-lq0l9C2)8hB
dmGNRhSYHbFD6bL%rf4&rQX[+8`AbM,AGkpY(SEfQ)JQC2'$YKE#Ibc+U4#CQSH#
1q`Y0)JrC-bHmiir*HA`hTh,)r(`@Yejq5lMmZIQ8P8FHYHH,UHc'P(3&1P@ J8`8
k9D$6+U"6Q*HI4*e@`CI!%bD&,i(r5`DqT'&05r#P*1T8M#q"I mX+q",L6Q6T!cL
%cpj6'4AQ9'&1rh2-DA+GaTbd2)NjPB5LF$JC39%%2k@J+!eq8U#S*1U8$d8P3DF
#+#V#R%T#8B3eV3P&`A"Z#43&3l-58"5J6YBLJ*fK`FDZhYRCDG!T(k4+!NlP3+S
NkV3FT%V#6N8J94*e@J*5kEM6-T!!#K'SNL!9J&'C)*@+3X8J&D*2bd%U4+'@J93
D#+@!9)!mP3#T!)%U$9)Kr*3#U4"q@JfN3K3U!k3Lq'N*5)AJd c+3!!S4Tc)J&8*
2ki&8'JLPJ&4*k#N2T%S#6d8J94*Z+J#T8QM6LL"9#R3U"UQ5b 00bN!!U#6jPJ94
*d+N)T%V#6BGQ0b'QNDBbX&85B#S,@b8aTQ,B#U'PCm*@"$5Y! &X4a,3fE*@$-QA
"9S!XV3eE!GDd&Q`&-01cB#Y!Rc*K+`#HRJPE+5L8K+edq#N6YNTK6`@i93`lj30
A-H"8"VNLS'P&j!T"Tr,)&8*3kb&A#%VP)9F4'+8L9aVqT#"A5Fb T%,P+38k&b&8
+FMS5P0$FTb+j'rLHr'Vark9K,6!eEUm!Dr&VeGST$@[a+pADV@#Y9`*Vd9!J42e
,1NH#@L@a,X+i*0D&m&B@eJA+V"*B&kU`bQ0GU-65X5l%Y-TMA3KVPF#k8&f9Lh8
4YT@,GB(kDLfX#j4C+f0GS03Ua,S)d9S*kd*i+`[V!Y9@*YB&kUX-V!ZaV9bXLb#
Y9E!Z8&3Y`ESLE#X2k`+&95E@KH"@(YDP39ZC@"IK@NZa,P"!V Bae)EU9MA@"ULN
AkpVlf0VqZ29KBfprYlAIVVAh@hZlch2FI#0BeeM'e2dL(FXD6 -iU8FhGB%H,U60
6C)8E`E$4m4K'58r#DB1KmK`qX6G[-%(cL(I(QpmeiKQHNQ3fpSpU&RMlm,fM6f9
Q++22abNdpM6iP-+r$4aq((6`$6jqjVGEi(L0L+LLm-6[(bFL#$V[0(JVihRqc9`
m`em9`CE"84'ke8*kE@HAh-cH',p'l*V1Vc96kK9V!@-@FZ5lQd+NH"KUCL"Xc@B
8HaSK0Z%)+*!!Y!KDbfI@lKGAIbpQ'G5DI(8`ARZS8'$4Ab5eY *`i6k503p2UR$2
$kV+1dHqcMQQ0c4'camE"!4YBrA2Yaq3,r"MpN!$2f'UU-494-BQ)&53k`Q08a&[
0,KmYY#C82FkP(i"#1Glq`[b'hTGA6Y5[ciQk`K4HY)kU+[VhUZL9eC!!XV'3!#G
6bMf(Q2S1DkMULUTfp[`DdLUSE2d89-phI`GT@c@T'K4K(I%K[8#M-QBE4hb+*46
5pT8rR`2jY,[AHVqepD'956i*m'RkVFjR"haq8)-&GrJR,,*$i5KSX4eD@+HjVbf
XXldM*LFjkqU)HB-MU#H4J03E@*JP@V*15EeTAq%r(Q(Y%NblXeY2`$j`qTQ,K85
VMXN%&,e%M1I(-%j9hZ5[jJiC`r++E1Jr-'SVd++C@'"4j1K+iqfGMlXl'qfYR9C
lZpCZYjXCXF#d*mD,+)he*dBCf[mr9KS,fiC3QlTr2AKq3#[lKH50d4!@S!"A#2h
6[f5Kk!C*i1pLQ6qq*jKE8AAXJkDA0-$Zp3,EkZ[4ZN+Ra4pYZcAqK(Z$UY@93i-
9a!8Ef-fYV4US-EIhQN+AD3S@+5-d@'[Gf'#e$L`,bX65N!!L#"MbjV`r)B*p#1Z
-#L[%G)-Ce`U82Z#p@E5Fi""@dSh+$RK0K5j`EaYXI05c'ApCJc(VpZaKh cM[@BI
Xl-LdF$&IXrX$V`8+8$DRDRUmHm*iBB(,F)P5&ccY-D6Be(Q5l,m@9Fb"-&bE5R!
a651XkSe9rA$klmceK1qem23BmP(K!5cN@M-'`jT%T)@4e4BVTE+1'm`&-S1`rDp
m)1Pj[SV6IjR`&Lq@h*,)0&`,`F0$T$"Flr(4jfph[+m49ec%,GYI2flC$QprHl8
2YAB9KDb`EkpQ6#qUPp$ZS5S+@4AYTQTK94e9G969899(94eph h@8'D5jLNrfF[(
*0YK&F$&E(U@XQD1V[l$U&a[eHVdc-Sfab8kYhQqR*ZYCAI0hKR'N[ck)DHaA&#E
AArRTXi'PE@5RYTLpAXlj0)fpLdVqp%ZpE[5&5p(Bq03h`D9)fkh1q$qMff@GJ@@
24dE2'ZZrq5"qDcMUR4LMFrEC2'I[![H+9ceq0adbI[Q0lc2$CVEC0cYMpM-l'!e
1p'2XpdjkBpEL1pEr!5[jj1JcT3!!5@3!!!:
--============_-1133877918==_============
Content-Type: text/plain; charset="us-ascii" ; format="flowed"

--

Jeff Bohmer
VisionLink, Inc.
_________________________________
303.402.0170
www.visionlink.org
_________________________________
People. Tools. Change. Community.
--============_-1133877918==_============
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0


---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

--============_-1133877918==_============--

Reply With Quote
  #2  
Old   
Tom Lane
 
Posts: n/a

Default Re: [BUGS] backend crash with certain statements/tables - 03-02-2004 , 11:49 AM






Jeff Bohmer <bohmer (AT) visionlink (DOT) org> writes:
Quote:
Running any of these statements on my database causes the backend to
crash (example from PG log below):
Crash confirmed here. Seems to be a side-effect of the 7.4 optimization
that tries to avoid "unnecessary" projection steps. In the "SELECT *
FROM foo LIMIT" case, the scan plan decides it need not do projection,
but actually one must occur (else heap_insert will scribble on the
source table :-(). The junkfilter code in execMain.c is supposed to
catch this situation, but it's fooled by the presence of a LIMIT step.
There may be some related cases, need to think more.

I should have a patch later today.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org


Reply With Quote
  #3  
Old   
Jeff Bohmer
 
Posts: n/a

Default Re: [BUGS] backend crash with certain statements/tables - 03-02-2004 , 12:15 PM



Quote:
I should have a patch later today.
Great! I'd like to try out the patch when it's ready.

Thanks,
- Jeff
--

Jeff Bohmer
VisionLink, Inc.
_________________________________
303.402.0170
www.visionlink.org
_________________________________
People. Tools. Change. Community.

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster


Reply With Quote
  #4  
Old   
Tom Lane
 
Posts: n/a

Default Re: [BUGS] backend crash with certain statements/tables - 03-02-2004 , 01:03 PM



Jeff Bohmer <bohmer (AT) visionlink (DOT) org> writes:
Quote:
Great! I'd like to try out the patch when it's ready.
Here ya go.

regards, tom lane

Index: src/backend/executor/execAmi.c
================================================== =================
RCS file: /cvsroot/pgsql-server/src/backend/executor/execAmi.c,v
retrieving revision 1.75.4.1
diff -c -r1.75.4.1 execAmi.c
*** src/backend/executor/execAmi.c 18 Dec 2003 20:21:53 -0000 1.75.4.1
--- src/backend/executor/execAmi.c 2 Mar 2004 18:52:18 -0000
***************
*** 348,350 ****
--- 348,415 ----
return false;
}
}
+
+ /*
+ * ExecMayReturnRawTuples
+ * Check whether a plan tree may return "raw" disk tuples (that is,
+ * pointers to original data in disk buffers, as opposed to temporary
+ * tuples constructed by projection steps). In the case of Append,
+ * some subplans may return raw tuples and others projected tuples;
+ * we return "true" if any of the returned tuples could be raw.
+ *
+ * This must be passed an already-initialized planstate tree, because we
+ * need to look at the results of ExecAssignScanProjectionInfo().
+ */
+ bool
+ ExecMayReturnRawTuples(PlanState *node)
+ {
+ /*
+ * At a table scan node, we check whether ExecAssignScanProjectionInfo
+ * decided to do projection or not. Most non-scan nodes always project
+ * and so we can return "false" immediately. For nodes that don't
+ * project but just pass up input tuples, we have to recursively
+ * examine the input plan node.
+ *
+ * Note: Hash and Material are listed here because they sometimes
+ * return an original input tuple, not a copy. But Sort and SetOp
+ * never return an original tuple, so they can be treated like
+ * projecting nodes.
+ */
+ switch (nodeTag(node))
+ {
+ /* Table scan nodes */
+ case T_SeqScanState:
+ case T_IndexScanState:
+ case T_TidScanState:
+ case T_SubqueryScanState:
+ case T_FunctionScanState:
+ if (node->ps_ProjInfo == NULL)
+ return true;
+ break;
+
+ /* Non-projecting nodes */
+ case T_HashState:
+ case T_MaterialState:
+ case T_UniqueState:
+ case T_LimitState:
+ return ExecMayReturnRawTuples(node->lefttree);
+
+ case T_AppendState:
+ {
+ AppendState *appendstate = (AppendState *) node;
+ int j;
+
+ for (j = 0; j < appendstate->as_nplans; j++)
+ {
+ if (ExecMayReturnRawTuples(appendstate->appendplans[j]))
+ return true;
+ }
+ break;
+ }
+
+ /* All projecting node types come here */
+ default:
+ break;
+ }
+ return false;
+ }
Index: src/backend/executor/execMain.c
================================================== =================
RCS file: /cvsroot/pgsql-server/src/backend/executor/execMain.c,v
retrieving revision 1.220.2.1
diff -c -r1.220.2.1 execMain.c
*** src/backend/executor/execMain.c 22 Jan 2004 02:23:35 -0000 1.220.2.1
--- src/backend/executor/execMain.c 2 Mar 2004 18:52:18 -0000
***************
*** 665,674 ****
/*
* Initialize the junk filter if needed. SELECT and INSERT queries
* need a filter if there are any junk attrs in the tlist. INSERT and
! * SELECT INTO also need a filter if the top plan node is a scan node
! * that's not doing projection (else we'll be scribbling on the scan
! * tuple!) UPDATE and DELETE always need a filter, since there's
! * always a junk 'ctid' attribute present --- no need to look first.
*/
{
bool junk_filter_needed = false;
--- 665,674 ----
/*
* Initialize the junk filter if needed. SELECT and INSERT queries
* need a filter if there are any junk attrs in the tlist. INSERT and
! * SELECT INTO also need a filter if the plan may return raw disk tuples
! * (else heap_insert will be scribbling on the source relation!).
! * UPDATE and DELETE always need a filter, since there's always a junk
! * 'ctid' attribute present --- no need to look first.
*/
{
bool junk_filter_needed = false;
***************
*** 689,706 ****
}
}
if (!junk_filter_needed &&
! (operation == CMD_INSERT || do_select_into))
! {
! if (IsA(planstate, SeqScanState) ||
! IsA(planstate, IndexScanState) ||
! IsA(planstate, TidScanState) ||
! IsA(planstate, SubqueryScanState) ||
! IsA(planstate, FunctionScanState))
! {
! if (planstate->ps_ProjInfo == NULL)
! junk_filter_needed = true;
! }
! }
break;
case CMD_UPDATE:
case CMD_DELETE:
--- 689,697 ----
}
}
if (!junk_filter_needed &&
! (operation == CMD_INSERT || do_select_into) &&
! ExecMayReturnRawTuples(planstate))
! junk_filter_needed = true;
break;
case CMD_UPDATE:
case CMD_DELETE:
Index: src/include/executor/executor.h
================================================== =================
RCS file: /cvsroot/pgsql-server/src/include/executor/executor.h,v
retrieving revision 1.102.2.2
diff -c -r1.102.2.2 executor.h
*** src/include/executor/executor.h 22 Jan 2004 02:23:35 -0000 1.102.2.2
--- src/include/executor/executor.h 2 Mar 2004 18:52:19 -0000
***************
*** 36,41 ****
--- 36,42 ----
extern void ExecRestrPos(PlanState *node);
extern bool ExecSupportsMarkRestore(NodeTag plantype);
extern bool ExecSupportsBackwardScan(Plan *node);
+ extern bool ExecMayReturnRawTuples(PlanState *node);

/*
* prototypes from functions in execGrouping.c

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo (AT) postgresql (DOT) org)


Reply With Quote
  #5  
Old   
Jeff Bohmer
 
Posts: n/a

Default Re: [BUGS] backend crash with certain statements/tables - 03-02-2004 , 02:50 PM



Quote:
Jeff Bohmer <bohmer (AT) visionlink (DOT) org> writes:
Great! I'd like to try out the patch when it's ready.

Here ya go.

Works for me on OS X and Linux.

Thank you very much!

- Jeff
--

Jeff Bohmer
VisionLink, Inc.
_________________________________
303.402.0170
www.visionlink.org
_________________________________
People. Tools. Change. Community.

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to majordomo (AT) postgresql (DOT) org)


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.