[ 
https://issues.apache.org/jira/browse/HAWQ-1494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16082438#comment-16082438
 ] 

fangpei commented on HAWQ-1494:
-------------------------------

To Ed Espino: I see, thanks!

> The bug can appear every time when I execute a specific sql:  Unexpect 
> internal error (setref.c:298), server closed the connection unexpectedly
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HAWQ-1494
>                 URL: https://issues.apache.org/jira/browse/HAWQ-1494
>             Project: Apache HAWQ
>          Issue Type: Bug
>          Components: Core
>            Reporter: fangpei
>            Assignee: Radar Lei
>             Fix For: 2.3.0.0-incubating
>
>
> When I execute a specific sql, a serious bug can happen every time. (Hawq 
> version is 2.2.0.0)
> BUG information:
> FATAL: Unexpect internal error (setref.c:298)
> DETAIL: AssertImply failed("!(!var->varattno >= 0) || (var->varattno <= 
> list_length(colNames) + list_length(rte- >pseudocols)))", File: "setrefs.c", 
> Line: 298)
> HINT:  Process 239600 will wait for gp_debug_linger=120 seconds before 
> termination.
> Note that its locks and other resources will not be released  until then.
> server closed the connection unexpectedly
>         This probably means the server terminated abnormally
>          before or while processing the request.
> The connection to the server was lost. Attemping reset: Succeeded.
> I use GDB to debug, the GDB information is the same every time. The 
> information is: 
> Loaded symbols for /lib64/libnss_files.so.2
> 0x00000032dd40eb5c in recv 0 from /lib64/libpthread.so.0
> (gdb) b setrefs.c:298
> Breakpoint 1 at 0x846063: file setrefs.c, line 298.
> (gdb) c 
> Continuing.
> Breakpoint 1, set_plan_references_output_asserts (glob=0x7fe96fbccab0, 
> plan=0x7fe8e930adb8) at setrefs.c:298
> 298 set ref s .c:没有那个文件或目录.
> (gdb) c 1923
> Will ignore next 1922 crossings of breakpoint 1. Continuing.
> Breakpoint 1, set_plan_references_output_asserts (glob=0x7fe96fbccab0, 
> plan=0x7fe869c70340) at setrefs.c:298
> 298 in setrefs.c
> (gdb) p list_length(allVars) 
> $1 = 1422
> (gdb) p var->varno 
> $2 = 65001
> (gdb) p list_length(glob->finalrtable) 
> $3 = 66515
> (gdb) p var->varattno 
> $4 = 31
> (gdb) p list_length(colNames) 
> $5 = 30
> (gdb) p list_length(rte->pseudocols) 
> $6 = 0
> the SQL sentence is just like :
> SELECT *
> FROM (select t.*,1001 as ttt from AAA t where  ( aaa = '320106000000006235'  
> or aaa = '320106000000006236'  or aaa = '320102000000006292'  or aaa = 
> '320106000000006293'  or aaa = '32010600000006393' ) and (  bbb between 
> '20170601065900' and '20170601175100'  and (ccc = '2017-06-01' ))  union all  
> select t.*,1002 as ttt from AAA t where  ( aaa = '320106000000006007'  or aaa 
> = '320106000000006006' ) and (  bbb between '20170601072900' and 
> '20170601210100'  and ( ccc = '2017-06-01' ))  union all  select t.*,1003 as 
> ttt from AAA t where  ( aaa = '320106000000002772' ) and (  bbb between 
> '20170601072900' and '20170601170100'  and ( ccc = '2017-06-01' ))  union all 
>  select t.*,1004 as ttt from AAA t where  (aaa = '320106000000006115'  or aaa 
> = '320106000000006116'  or aaa = '320106000000006318'  or aaa = 
> '320106000000006319' ) and (  bbb between '20170601085900' and 
> '20170601163100' and ( ccc = '2017-06-01' ))  union all  select t.*,1005 as 
> ttt from AAA t where  ( aaa = '320106000000006180' or aaa = 
> '320104000000006385' ) and (  bbb between '20170601205900' and 
> '20170601230100'  and ( ccc = '2017-06-01' )) union all  select t.*,1006 as 
> ttt from AAA t where  ( aaa = '320102000000006423'  or aaa = 
> '320102000000006255'  or aaa = '320106000000006258'  or aaa = 
> '320106000000006259' ) and (  bbb between '20170601215900' and 
> '20170602004900'  and ( ccc = '2017-06-01'  or ccc = '2017-06-02' ))  union 
> all select t.*,1007 as ttt from AAA t where  ( aaa = '320106000000006175' or 
> aaa = '320106000000006004' ) and (  bbb between '20170602074900' and 
> '20170602182100'  and ( ccc = '2017-06-02'  )) union all select t.*,1008 as 
> ttt from AAA t where  ( aaa = '320102000000006648' ) and (  bbb between 
> '20170602132900' and '20170602134600'  and ( ccc = '2017-06-02' ))  union all 
>  select t.*,1009 as ttt from AAA t where  ( aaa = '320106000000002765'  or 
> aaa = '320100000000006282' ) and (  bbb between '20170602142900' and 
> '20170603175100'  and ( ccc = '2017-06-02'  or ccc = '2017-06-03' ))  union 
> all  select t.*,1010 as ttt from AAA t where  (aaa = '320106000000006060' ) 
> and (  bbb between '20170602165900' and '20170603034100'  and ( ccc = 
> '2017-06-02'  or ccc = '2017-06-03' ))  union all select t.*,1011 as ttt from 
> AAA t where  ( aaa = '3201060000000062229'  or aaa = '320106000000006230'  or 
> aaa = '320102000000002783'  or aaa = '320102000000006304' ) and (  bbb 
> between '20170603192900' and '20170604183100'  and ( ccc = '2017-06-03'  or 
> ccc = '2017-06-04' ))  union all select t.*,1012 as ttt from AAA t where  ( 
> aaa = '320113000000006549' ) and (  bbb between '20170604071947' and 
> '20170604220100'  and ( ccc = '2017-06-04' ))  union all select t.*1013 as 
> ttt from AAA t where  ( aaa = '320106000000006061'  or aaa = 
> '320106000000006062' ) and (  bbb between '20170604145900' and 
> '20170604154100'  and ( ccc = '2017-06-04' ))  ) T0 
> WHERE EXISTS (SELECT HHH
>   FROM (SELECT HHH, COUNT(*)
>   FROM (SELECT HHH, ttt, COUNT(*)
>   FROM (select t.*,1001 as ttt from AAA t where  ( aaa = '320106000000006235' 
>  or aaa = '320106000000006236'  or aaa = '320102000000006292'  or aaa = 
> '320106000000006293'  or aaa = '320106000000006393' ) and (  bbb between 
> '20170601065900' and '20170601175100'  and ( ccc = '2017-06-01' ))  union all 
>  select t.*,1002 as ttt from AAA t where  ( aaa = '320106000000006007'  or 
> aaa = '320106000000006006' ) and (  bbb between '20170601072900' and 
> '20170601170100'  and ( ccc = '2017-06-01' ))  union all  select t.*,1003 as 
> ttt from AAA t where  ( aaa = '320106000000002772' ) and ( bbb between 
> '20170601072900' and '20170601170100'  and ( ccc = '2017-06-01' ))  union all 
>  select t.*,1004 as ttt from AAA t where  (aaa = '320106000000006115'  or aaa 
> = '320106000000006116'  or aaa = '320106000000006318'  or aaa = 
> '320106000000006319' ) and (  bbb between '20170601085900' and 
> '20170601163100'  and ( ccc = '2017-06-01' ))  union all select t.*,1005 as 
> ttt from AAA t where  ( aaa = '320106000000006180'  or aaa = 
> '320104000000006385' ) and (  bbb between '20170601205900' and 
> '20170601230100'  and ( ccc = '2017-06-01' ))  union all  select t.*,1006 as 
> ttt from AAA t where  ( aaa = '320102000000006423'  or aaa = 
> '320102000000006255'  or aaa = '320106000000006258'  or aaa = 
> '320106000000006259' ) and (  bbb between '20170601215900' and 
> '20170602004900'  and ( ccc = '2017-06-01'  or ccc = '2017-06-02' ))  union 
> all  select t.*,1007 as ttt from AAA t where  ( aaa = '320106000000006175'  
> or aaa = '320106000000006004' ) and (  bbb between '20170602074900' and 
> '20170602182100'  and ( ccc = '2017-06-02' ))  union all select t.*,1008 as 
> ttt from AAA t where  ( aaa = '320102000000006648' ) and (  bbb between 
> '20170602132900' and '20170602134600'  and ( ccc = '2017-06-02' ))  union all 
>  select t.*,1009 as ttt from AAA t where  ( aaa = '320106000000002765'  or 
> aaa = '320100000000006282' ) and (  bbb between '20170602142900' and 
> '20170603175100'  and ( ccc = '2017-06-02'  or ccc = '2017-06-03' ))  union 
> all select t.*,1010 as ttt from AAA t where  ( aaa = '320106000000006060' ) 
> and (  bbb between '20170602165900' and '20170603034100'  and ( ccc = 
> '2017-06-02'  or ccc = '2017-06-03' ))  union all select t.*,1011 as ttt from 
> AAA t where  ( aaa = '320106000000006229'  or aaa = '320106000000006230'  or 
> aaa = '320102000000002783'  or aaa = '320102000000006304' ) and (  bbb 
> between '20170603192900' and '20170604183100'  and ( ccc = '2017-06-03'  or 
> ccc = '2017-06-04' ))  union all  select t.*,1012 as ttt from AAA t where  ( 
> aaa = '32011300000000549' ) and (  bbb between '20170604071947' and 
> '20170604220100'  and ( ccc = '2017-06-04' ))  union all select t.*,1013 as 
> ttt from AAA t where  ( aaa = '210106000000006061'  or aaa = 
> '320106000000006062' ) and (  bbb between '20170604145900' and 
> '20170604154100'  and ( ccc = '2017-06-04' ))  ) T1
>  GROUP BY HHH, ttt) T2
>  GROUP BY HHH
>  HAVING COUNT(*) >= 8) T3
>  WHERE T0.HHH = T3.HHH);
> I try to "explain this SQL" to get the execution plan, but it report the same 
> error, and then can not get the execution plan.
> I also try to "set optimizer=off" and retry the SQL sentence, but the same 
> error happen, and "show optimizer" the optimizer  is "on" (automatically set 
> "on").



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to