[pgpool-hackers: 1108] Re: Fix segfalut related to parser

Yugo Nagata nagata at sraoss.co.jp
Thu Oct 15 12:28:58 JST 2015


Sorry for a typo.

On Thu, 15 Oct 2015 12:27:29 +0900
Yugo Nagata <nagata at sraoss.co.jp> wrote:

> Hi,
> 
> I found pgpool-II was able to pass a PostgreSQL regression test,

I found pgpool-II was *NOT* able to pass a PostgreSQL regression test,


> that is "psql" test when streaming-replication mode. 
> 
> pgpool-II came to segfault with the next query.
> 
>  prepare q as select array_to_string(array_agg(repeat('x',2*n)),E'\n') as "ab
> 
>  c", array_to_string(array_agg(repeat('y',20-2*n)),E'\n') as "a
>  bc" from generate_series(1,10) as n(n) group by n>1 ;
> 
> This was also reproduced a simple query as below;
> 
>  prepare p as select * from generate_series(1,1);
> 
> This is because RangeFunction node has a member functions, which is 
> a list whose last element is NIL.
> 
>   RangeFunction *n = makeNode(RangeFunction);
>   n->lateral = false;
>   n->ordinality = $2;
>   n->is_rowsfrom = false;
>   n->functions = list_make1(list_make2($1, NIL));
> 
> This caused segfault in foreach loop in _outList() function.
> I have fixed and commit this already.
> 
> http://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=6f6f0bef4fd704b89c85543635753db21eac62a3
> 
> This bug was introduced since 3.4, so I backported this to V3_4_RELEASE.
> 
> 
> 
> BTW, in streaming replication, statement in PREPARE is deparsed
> by nodeToString in sent_to_where().
> 
>  
>          /*
>           * PREPARE
>           */
>          else if (IsA(node, PrepareStmt))
>          {
>              PrepareStmt *prepare_statement = (PrepareStmt *)node;
>  
>              char *string = nodeToString(prepare_statement->query);
>  
>              /* Note that this is a recursive call */
>              return send_to_where((Node *)(prepare_statement->query), string);
>          }
> 
> The deparced query "string" is passed to send_to_where() recursively, 
> but the second argument is not used in this function at all. I don't
> know why this argument is left but I think this should be removed.
> 
> Any comments?
> 
> 
> -- 
> Yugo Nagata <nagata at sraoss.co.jp>
> _______________________________________________
> pgpool-hackers mailing list
> pgpool-hackers at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-hackers


-- 
Yugo Nagata <nagata at sraoss.co.jp>


More information about the pgpool-hackers mailing list