-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
area/ysqlYugabyte SQL (YSQL)Yugabyte SQL (YSQL)kind/enhancementThis is an enhancement of an existing featureThis is an enhancement of an existing featurepriority/mediumMedium priority issueMedium priority issueqa_automationBugs identified via itest-system, LST, Stress automation or causing automation failuresBugs identified via itest-system, LST, Stress automation or causing automation failures
Description
Jira Link: DB-1012
Description
To find further problems I ran SQLsmith against the postgis data created by postgis regress tests.
Can be reproduced against yugabyte-2.11.2.0 on CentOS:
select
ref_0.id as c0,
61 as c1,
public.postgis_lib_build_date() as c2,
pg_catalog.pg_reload_conf() as c3,
ref_0.id as c4
from
tm.geogs as ref_0
where case when case when cast(null as anyrange) < cast(null as anyrange) then cast(null as lseg) else cast(null as lseg) end
> cast(nullif(cast(coalesce(cast(null as lseg),
cast(nullif(cast(null as lseg),
cast(null as lseg)) as lseg)) as lseg),
cast(null as lseg)) as lseg) then (select public.st_asmvt(g) from public.indexempty)
else (select public.st_asmvt(g) from public.indexempty)
end
<= cast(nullif(pg_catalog.timestamp_send(
cast(cast(null as "timestamp") as "timestamp")),
case when (EXISTS (
select
ref_1.g as c0,
ref_1.id as c1
from
tm.geometrycollection4326 as ref_1
where false
limit 161))
or (ref_0.id is not NULL) then case when ((ref_0.g is NULL)
and ((cast(null as "timestamp") >= cast(null as timestamptz))
or (((cast(null as "timestamp") >= cast(null as date))
or (ref_0.g is NULL))
or (cast(null as "bit") = cast(null as "bit")))))
and (cast(null as bytea) = cast(null as bytea)) then cast(nullif(cast(null as bytea),
cast(null as bytea)) as bytea) else cast(nullif(cast(null as bytea),
cast(null as bytea)) as bytea) end
else case when ((ref_0.g is NULL)
and ((cast(null as "timestamp") >= cast(null as timestamptz))
or (((cast(null as "timestamp") >= cast(null as date))
or (ref_0.g is NULL))
or (cast(null as "bit") = cast(null as "bit")))))
and (cast(null as bytea) = cast(null as bytea)) then cast(nullif(cast(null as bytea),
cast(null as bytea)) as bytea) else cast(nullif(cast(null as bytea),
cast(null as bytea)) as bytea) end
end
) as bytea);
Backup of the data: postgis_reg.sql.zip
backtrace from gdb:
Core was generated by `postgres: yugabyte postgis_reg 127.0.0.1(54844) SELECT '.
Program terminated with signal 11, Segmentation fault.
#0 strlen () at ../sysdeps/x86_64/strlen.S:106
#1 0x0000000000a440ab in MemoryContextStrdup (context=0x2448000, string=string@entry=0x0) at ../../../../../../../src/postgres/src/backend/utils/mmgr/mcxt.c:1229
#2 0x00007fb84afeb440 in getPostgisConstants () at lwgeom_pg.c:164
#3 postgis_initialize_cache () at lwgeom_pg.c:240
#4 0x00007fb84afa7f62 in pgis_asmvt_transfn (fcinfo=0x2f32188) at lwgeom_out_mvt.c:136
#5 0x00000000006ca1fa in ExecInterpExpr (state=0x2515f60, econtext=0x25145a0, isnull=<optimized out>) at ../../../../../../src/postgres/src/backend/executor/execExprInterp.c:1687
#6 0x00000000006e37f1 in ExecEvalExprSwitchContext (isNull=0x7fff836fa56f, econtext=<optimized out>, state=0x2515f60) at ../../../../../../src/postgres/src/include/executor/executor.h:321
#7 advance_aggregates (aggstate=0x2514378, aggstate=0x2514378) at ../../../../../../src/postgres/src/backend/executor/nodeAgg.c:685
#8 agg_retrieve_direct (aggstate=0x2514378) at ../../../../../../src/postgres/src/backend/executor/nodeAgg.c:2108
#9 ExecAgg (pstate=0x2514378) at ../../../../../../src/postgres/src/backend/executor/nodeAgg.c:1766
#10 0x0000000000703202 in ExecProcNode (node=0x2514378) at ../../../../../../src/postgres/src/include/executor/executor.h:249
#11 ExecSetParamPlan (node=<optimized out>, econtext=econtext@entry=0x2f33f28) at ../../../../../../src/postgres/src/backend/executor/nodeSubplan.c:1095
#12 0x00000000006c60b8 in ExecEvalParamExec (state=state@entry=0x2efd198, op=op@entry=0x2efef40, econtext=econtext@entry=0x2f33f28) at ../../../../../../src/postgres/src/backend/executor/execExprInterp.c:2298
#13 0x00000000006ca3b6 in ExecInterpExpr (state=0x2efd198, econtext=0x2f33f28, isnull=<optimized out>) at ../../../../../../src/postgres/src/backend/executor/execExprInterp.c:1016
#14 0x00000000006d941c in ExecEvalExprSwitchContext (isNull=0x7fff836fa74f, econtext=0x2f33f28, state=0x2efd198) at ../../../../../../src/postgres/src/include/executor/executor.h:321
#15 ExecQual (econtext=0x2f33f28, state=0x2efd198) at ../../../../../../src/postgres/src/include/executor/executor.h:390
#16 ExecScan (node=0x2efc038, accessMtd=0x704830 <ForeignNext>, recheckMtd=0x704920 <ForeignRecheck>) at ../../../../../../src/postgres/src/backend/executor/execScan.c:199
#17 0x00000000006ce5db in ExecProcNode (node=0x2efc038) at ../../../../../../src/postgres/src/include/executor/executor.h:249
#18 ExecutePlan (execute_once=<optimized out>, dest=0x26da708, direction=<optimized out>, numberTuples=0, sendTuples=<optimized out>, operation=CMD_SELECT, use_parallel_mode=<optimized out>, planstate=0x2efc038, estate=0x2514118) at ../../../../../../src/postgres/src/backend/executor/execMain.c:1730
#19 standard_ExecutorRun (queryDesc=0x3fd1d18, direction=<optimized out>, count=0, execute_once=<optimized out>) at ../../../../../../src/postgres/src/backend/executor/execMain.c:367
#20 0x00007fb859b628bd in pgss_ExecutorRun (queryDesc=0x3fd1d18, direction=ForwardScanDirection, count=0, execute_once=<optimized out>) at ../../../../../src/postgres/contrib/pg_stat_statements/pg_stat_statements.c:947
#21 0x00007fb85995b3aa in ybpgm_ExecutorRun (queryDesc=0x3fd1d18, direction=ForwardScanDirection, count=0, execute_once=<optimized out>) at ../../../../../src/postgres/contrib/yb_pg_metrics/yb_pg_metrics.c:499
#22 0x000000000088564b in PortalRunSelect (portal=portal@entry=0x244e118, forward=forward@entry=true, count=0, count@entry=9223372036854775807, dest=dest@entry=0x26da708) at ../../../../../../src/postgres/src/backend/tcop/pquery.c:955
#23 0x0000000000887141 in PortalRun (portal=portal@entry=0x244e118, count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=true, run_once=run_once@entry=true, dest=dest@entry=0x26da708, altdest=altdest@entry=0x26da708, completionTag=0x7fff836fac20 "") at ../../../../../../src/postgres/src/backend/tcop/pquery.c:784
#24 0x0000000000884ad8 in exec_simple_query (query_string=0x2282938 "select \n ref_0.id as c0, \n 61 as c1, \n public.postgis_lib_build_date() as c2, \n pg_catalog.pg_reload_conf() as c3, \n ref_0.id as c4\nfrom \n tm.geogs as ref_0\nwhere case when case when cast(null "..., query_string@entry=0x7fff836faba0 "\030\341D\002") at ../../../../../../src/postgres/src/backend/tcop/postgres.c:1161
#25 yb_exec_simple_query_impl (query_string=query_string@entry=0x2282938) at ../../../../../../src/postgres/src/backend/tcop/postgres.c:4434
#26 0x000000000087f8b8 in yb_exec_query_wrapper (exec_context=exec_context@entry=0x2282000, restart_data=restart_data@entry=0x7fff836fadf0, functor=functor@entry=0x884620 <yb_exec_simple_query_impl>, functor_context=functor_context@entry=0x2282938) at ../../../../../../src/postgres/src/backend/tcop/postgres.c:4419
#27 0x00000000008802ec in yb_exec_simple_query (query_string=query_string@entry=0x2282938 "select \n ref_0.id as c0, \n 61 as c1, \n public.postgis_lib_build_date() as c2, \n pg_catalog.pg_reload_conf() as c3, \n ref_0.id as c4\nfrom \n tm.geogs as ref_0\nwhere case when case when cast(null "..., exec_context=exec_context@entry=0x2282000) at ../../../../../../src/postgres/src/backend/tcop/postgres.c:4449
#28 0x0000000000882213 in PostgresMain (argc=<optimized out>, argv=argv@entry=0x227dfe8, dbname=0x2303fe8 "postgis_reg", username=0x2313fe8 "yugabyte") at ../../../../../../src/postgres/src/backend/tcop/postgres.c:5084
#29 0x000000000049e292 in BackendRun (port=0x216c960) at ../../../../../../src/postgres/src/backend/postmaster/postmaster.c:4470
#30 BackendStartup (port=0x216c960) at ../../../../../../src/postgres/src/backend/postmaster/postmaster.c:4136
#31 ServerLoop () at ../../../../../../src/postgres/src/backend/postmaster/postmaster.c:1754
#32 0x00000000007ea21f in PostmasterMain (argc=argc@entry=23, argv=argv@entry=0x2046000) at ../../../../../../src/postgres/src/backend/postmaster/postmaster.c:1417
#33 0x000000000073588a in PostgresServerProcessMain (argc=23, argv=0x2046000) at ../../../../../../src/postgres/src/backend/main/main.c:234
#34 0x0000000000735a89 in main ()
Coredump: core.10294.zip
Metadata
Metadata
Assignees
Labels
area/ysqlYugabyte SQL (YSQL)Yugabyte SQL (YSQL)kind/enhancementThis is an enhancement of an existing featureThis is an enhancement of an existing featurepriority/mediumMedium priority issueMedium priority issueqa_automationBugs identified via itest-system, LST, Stress automation or causing automation failuresBugs identified via itest-system, LST, Stress automation or causing automation failures