Re: BUG #6222: Segmentation fault on unlogged table
От | Merlin Moncure |
---|---|
Тема | Re: BUG #6222: Segmentation fault on unlogged table |
Дата | |
Msg-id | CAHyXU0wYfbkYGJNONrA84Hqxqi=R-k_gW83WD6kuDRe3Y-nN-w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #6222: Segmentation fault on unlogged table (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: BUG #6222: Segmentation fault on unlogged table
|
Список | pgsql-bugs |
On Mon, Sep 26, 2011 at 11:08 AM, Robert Haas <robertmhaas@gmail.com> wrote: > On Mon, Sep 26, 2011 at 11:40 AM, Robert Haas <robertmhaas@gmail.com> wro= te: >> To check my work, I did this: >> >> --- a/src/backend/executor/execQual.c >> +++ b/src/backend/executor/execQual.c >> @@ -5003,6 +5003,7 @@ ExecQual(List *qual, ExprContext *econtext, bool >> resultForNull) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Datum =A0 =A0 =A0 =A0 =A0 expr_value; >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0bool =A0 =A0 =A0 =A0 =A0 =A0isNull; >> >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 Assert(!IsA(clause, List)); >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0expr_value =3D ExecEvalExpr(clause, econt= ext, &isNull, NULL); >> >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (isNull) >> >> And in fact the test case (when run against the unlogged tables) fails >> that assertion: >> >> TRAP: FailedAssertion("!(!((((Node*)(clause))->type) =3D=3D T_List))", >> File: "execQual.c", Line: 5006) >> >> Now I'm not too sure why that is happening yet, but I'm leaning toward >> the idea that the bug here is timing-related and that unlogged tables >> aren't the cause, but rather just make it easier to hit whatever the >> race condition is by removing some overhead. > > I cannot reproduce this on commit > e6faf910d75027bdce7cd0f2033db4e912592bcc. =A0But on the very next commit > I can: > > commit e6faf910d75027bdce7cd0f2033db4e912592bcc > Author: Tom Lane <tgl@sss.pgh.pa.us> > Date: =A0 Fri Sep 16 00:42:53 2011 -0400 > > =A0 =A0Redesign the plancache mechanism for more flexibility and efficien= cy. > > Tom, any thoughts? hm. any relation to YAMAMOTO Takashi's recent email, [BUGS] bug in plancache.c, which hasn't hit the archives yet? > "GetCachedPlan can pass the 'qlist' to the planner twice. if i understand the code correctly, it's unsafe because the planner is destructive wrt the input tree. for my application, it often causes a crash in executor." merlin
В списке pgsql-bugs по дате отправления: