Amit Kapila writes:
> This seems to be another symptom of the problem related to
> es_query_dsa for which Thomas has sent a patch on a different thread
> [1]. After applying that patch, I am not able to see the problem. I
> think due to the wrong usage of dsa across nodes, it can lead to
> sending some wrong values for params to workers.
>
> [1] -
> https://www.postgresql.org/message-id/CAEepm%3D0Mv9BigJPpribGQhnHqVGYo2%2BkmzekGUVJJc9Y_ZVaYA%40mail.gmail.com
while my posted recipe is indeed inconspicuous with the patch applied,
It seems to have made matters worse from the sqlsmith perspective:
Instead of one core dump per hour I get one per minute. Sample
backtrace below. I could not find a recipe yet to reproduce these
(beyond starting sqlsmith).
regards,
Andreas
Core was generated by `postgres: smith regression [local] SELECT
'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 gather_getnext (gatherstate=0x555a5fff1350) at nodeGather.c:283
283 estate->es_query_dsa = gatherstate->pei->area;
#1 ExecGather (pstate=0x555a5fff1350) at nodeGather.c:216
#2 0x0000555a5d51a1ea in ExecProcNode (node=0x555a5fff1350) at
../../../src/include/executor/executor.h:242
#3 ExecutePlan (execute_once=<optimized out>, dest=0x555a604f78a0,
direction=<optimized out>, numberTuples=1, sendTuples=<optimized out>,
operation=CMD_SELECT, use_parallel_mode=<optimized out>,
planstate=0x555a5fff1350, estate=0x555a5fff1138) at execMain.c:1718
#4 standard_ExecutorRun (queryDesc=0x555a604f78f8, direction=<optimized out>,
count=1, execute_once=<optimized out>) at execMain.c:361
#5 0x0000555a5d5267cc in postquel_getnext (es=0x555a604f7418,
es=0x555a604f7418, fcache=0x555a5fd1a658, fcache=0x555a5fd1a658) at
functions.c:865
#6 fmgr_sql (fcinfo=0x555a60376470) at functions.c:1161
#7 0x0000555a5d5224f7 in ExecMakeFunctionResultSet (fcache=0x555a60376400,
econtext=econtext@entry=0x555a60374090, argContext=0x555a5fd449d0,
isNull=0x555a6037a60e "", isDone=isDone@entry=0x555a6037a698) at execSRF.c:604
#8 0x0000555a5d53dcbb in ExecProjectSRF (node=node@entry=0x555a60373f78,
continuing=continuing@entry=0 '\000') at nodeProjectSet.c:175
#9 0x0000555a5d53ddf5 in ExecProjectSet (pstate=0x555a60373f78) at
nodeProjectSet.c:105
#10 0x0000555a5d53d556 in ExecProcNode (node=0x555a60373f78) at
../../../src/include/executor/executor.h:242
#11 ExecNestLoop (pstate=0x555a60373da0) at nodeNestloop.c:109
#12 0x0000555a5d53d556 in ExecProcNode (node=0x555a60373da0) at
../../../src/include/executor/executor.h:242
#13 ExecNestLoop (pstate=0x555a60373248) at nodeNestloop.c:109
#14 0x0000555a5d536699 in ExecProcNode (node=0x555a60373248) at
../../../src/include/executor/executor.h:242
#15 ExecLimit (pstate=0x555a60372650) at nodeLimit.c:95
#16 0x0000555a5d5433eb in ExecProcNode (node=0x555a60372650) at
../../../src/include/executor/executor.h:242
#17 ExecSetParamPlan (node=<optimized out>, econtext=0x555a6045e948) at
nodeSubplan.c:968
#18 0x0000555a5d513da8 in ExecEvalParamExec (state=<optimized out>,
op=0x555a604619f0, econtext=<optimized out>) at execExprInterp.c:1921
#19 0x0000555a5d516b7e in ExecInterpExpr (state=0x555a604616e0,
econtext=0x555a6045e948, isnull=<optimized out>) at execExprInterp.c:1038
#20 0x0000555a5d547cad in ExecEvalExprSwitchContext (isNull=0x7ffecac290ce "",
econtext=0x555a6045e948, state=0x555a604616e0) at
../../../src/include/executor/executor.h:300
#21 ExecProject (projInfo=0x555a604616d8) at
../../../src/include/executor/executor.h:334
#22 ExecWindowAgg (pstate=0x555a6045e670) at nodeWindowAgg.c:1761
#23 0x0000555a5d536699 in ExecProcNode (node=0x555a6045e670) at
../../../src/include/executor/executor.h:242
#24 ExecLimit (pstate=0x555a6045df28) at nodeLimit.c:95
#25 0x0000555a5d51a1ea in ExecProcNode (node=0x555a6045df28) at
../../../src/include/executor/executor.h:242
#26 ExecutePlan (execute_once=<optimized out>, dest=0x555a604322a0,
direction=<optimized out>, numberTuples=0, sendTuples=<optimized out>,
operation=CMD_SELECT, use_parallel_mode=<optimized out>,
planstate=0x555a6045df28, estate=0x555a5ffef128) at execMain.c:1718
#27 standard_ExecutorRun (queryDesc=0x555a5ff8e418, direction=<optimized out>,
count=0, execute_once=<optimized out>) at execMain.c:361
#28 0x0000555a5d668ecc in PortalRunSelect (portal=portal@entry=0x555a5fbf5f00,
forward=forward@entry=1 '\001', count=0, count@entry=9223372036854775807,
dest=dest@entry=0x555a604322a0) at pquery.c:932
#29 0x0000555a5d66a4c0 in PortalRun (portal=portal@entry=0x555a5fbf5f00,
count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=1 '\001',
run_once=run_once@entry=1 '\001', dest=dest@entry=0x555a604322a0,
altdest=altdest@entry=0x555a604322a0, completionTag=0x7ffecac29380 "") at
pquery.c:773
#30 0x0000555a5d66608b in exec_simple_query (query_string=0x555a5fb78178
"[...]") at postgres.c:1120
#31 0x0000555a5d667de1 in PostgresMain (argc=<optimized out>,
argv=argv@entry=0x555a5fbb5710, dbname=<optimized out>, username=<optimized
out>) at postgres.c:4139
#32 0x0000555a5d36af16 in BackendRun (port=0x555a5fb9d280) at postmaster.c:4412
#33 BackendStartup (port=0x555a5fb9d280) at postmaster.c:4084
#34 ServerLoop () at postmaster.c:1757
#35 0x0000555a5d5ec214 in PostmasterMain (argc=3, argv=0x555a5fb725a0) at
postmaster.c:1365
#36 0x0000555a5d36c48d in main (argc=3, argv=0x555a5fb725a0) at main.c:228