[
https://issues.apache.org/jira/browse/HAWQ-1494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16557998#comment-16557998
]
Yi Jin commented on HAWQ-1494:
------------------------------
This looks like an optimizer or plan related processing bug, can anyone
familiar with these components have a look at it?
> 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: Yi Jin
> Priority: Major
> Fix For: 2.4.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
(v7.6.3#76005)