Re: BUG #15781: subselect on foreign table (postgres_fdw) can crash (segfault) - Mailing list pgsql-bugs
From | Sergei Kornilov |
---|---|
Subject | Re: BUG #15781: subselect on foreign table (postgres_fdw) can crash (segfault) |
Date | |
Msg-id | 54257121556202017@sas1-46c84f197234.qloud-c.yandex.net Whole thread Raw |
In response to | BUG #15781: subselect on foreign table (postgres_fdw) can crash (segfault) (PG Bug reporting form <noreply@postgresql.org>) |
List | pgsql-bugs |
Hi I can reproduce this on REL_11_STABLE and HEAD. Here is backtrace from REL_11_STABLE: #0 CheckVarSlotCompatibility (slot=slot@entry=0x0, attnum=1, vartype=16) at execExprInterp.c:1867 #1 0x00005611db3cb342 in CheckExprStillValid (state=state@entry=0x5611dd0fa368, econtext=econtext@entry=0x5611dd0f9730)at execExprInterp.c:1831 #2 0x00005611db3cb36e in ExecInterpExprStillValid (state=0x5611dd0fa368, econtext=0x5611dd0f9730, isNull=0x7ffc524ca89f)at execExprInterp.c:1780 #3 0x00007fc3648bac8d in ExecEvalExpr (isNull=0x7ffc524ca89f, econtext=0x5611dd0f9730, state=<optimized out>) at ../../src/include/executor/executor.h:294 #4 process_query_params (econtext=0x5611dd0f9730, param_flinfo=0x5611dd0fa2d0, param_exprs=<optimized out>, param_values=param_values@entry=0x5611dd0fad50) at postgres_fdw.c:4124 #5 0x00007fc3648baf82 in create_cursor (node=<optimized out>) at postgres_fdw.c:3148 #6 0x00007fc3648bb041 in postgresIterateForeignScan (node=0x5611dd0f9618) at postgres_fdw.c:1451 #7 0x00005611db4026c4 in ForeignNext (node=node@entry=0x5611dd0f9618) at nodeForeignscan.c:54 #8 0x00005611db3db4ff in ExecScanFetch (recheckMtd=0x5611db40256e <ForeignRecheck>, accessMtd=0x5611db402650 <ForeignNext>,node=0x5611dd0f9618) at execScan.c:95 #9 ExecScan (node=0x5611dd0f9618, accessMtd=accessMtd@entry=0x5611db402650 <ForeignNext>, recheckMtd=recheckMtd@entry=0x5611db40256e <ForeignRecheck>) at execScan.c:145 #10 0x00005611db40254d in ExecForeignScan (pstate=<optimized out>) at nodeForeignscan.c:121 #11 0x00005611db3d9aa2 in ExecProcNodeFirst (node=0x5611dd0f9618) at execProcnode.c:445 #12 0x00005611db3d2039 in ExecProcNode (node=0x5611dd0f9618) at ../../../src/include/executor/executor.h:247 #13 ExecutePlan (estate=estate@entry=0x5611dd0b2718, planstate=0x5611dd0f9618, use_parallel_mode=<optimized out>, operation=operation@entry=CMD_SELECT, sendTuples=sendTuples@entry=true, numberTuples=numberTuples@entry=0, direction=ForwardScanDirection, dest=0x5611dd0df520, execute_once=true) at execMain.c:1723 #14 0x00005611db3d2c94 in standard_ExecutorRun (queryDesc=0x5611dd0c7be8, direction=ForwardScanDirection, count=0, execute_once=<optimizedout>) at execMain.c:364 #15 0x00005611db3d2d4f in ExecutorRun (queryDesc=queryDesc@entry=0x5611dd0c7be8, direction=direction@entry=ForwardScanDirection, count=count@entry=0, execute_once=<optimized out>) at execMain.c:307 #16 0x00005611db53f0ed in PortalRunSelect (portal=portal@entry=0x5611dd054278, forward=forward@entry=true, count=0, count@entry=9223372036854775807, dest=dest@entry=0x5611dd0df520) at pquery.c:932 #17 0x00005611db5407de in PortalRun (portal=portal@entry=0x5611dd054278, count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=true, run_once=run_once@entry=true, dest=dest@entry=0x5611dd0df520, altdest=altdest@entry=0x5611dd0df520, completionTag=0x7ffc524cad10"") at pquery.c:773 #18 0x00005611db53caa9 in exec_simple_query ( query_string=query_string@entry=0x5611dcfedac8 "select exists(select c1 from ft4), avg(c1) from ft4 where c1 = (select\nmax(c1)from ft4);") at postgres.c:1145 #19 0x00005611db53e9ce in PostgresMain (argc=<optimized out>, argv=argv@entry=0x5611dd018910, dbname=<optimized out>, username=<optimizedout>) at postgres.c:4182 #20 0x00005611db4b8d8b in BackendRun (port=port@entry=0x5611dd0115a0) at postmaster.c:4358 #21 0x00005611db4bbd2f in BackendStartup (port=port@entry=0x5611dd0115a0) at postmaster.c:4030 #22 0x00005611db4bbf52 in ServerLoop () at postmaster.c:1707 #23 0x00005611db4bd459 in PostmasterMain (argc=3, argv=<optimized out>) at postmaster.c:1380 #24 0x00005611db4210c9 in main (argc=3, argv=0x5611dcfe81f0) at main.c:228 Similar from HEAD: #0 CheckVarSlotCompatibility (slot=slot@entry=0x0, attnum=1, vartype=16) at execExprInterp.c:1850 #1 0x00005581fa6011b7 in CheckExprStillValid (state=state@entry=0x5581fba700c0, econtext=econtext@entry=0x5581fba6f4f0)at execExprInterp.c:1814 #2 0x00005581fa6011e3 in ExecInterpExprStillValid (state=0x5581fba700c0, econtext=0x5581fba6f4f0, isNull=0x7ffcad499ebf)at execExprInterp.c:1763 #3 0x00007f276130d67c in ExecEvalExpr (isNull=0x7ffcad499ebf, econtext=0x5581fba6f4f0, state=<optimized out>) at ../../src/include/executor/executor.h:288 #4 process_query_params (econtext=0x5581fba6f4f0, param_flinfo=0x5581fba70028, param_exprs=<optimized out>, param_values=param_values@entry=0x5581fba70aa8) at postgres_fdw.c:4307 #5 0x00007f276130d982 in create_cursor (node=<optimized out>) at postgres_fdw.c:3247 #6 0x00007f276130da3c in postgresIterateForeignScan (node=0x5581fba6f3d8) at postgres_fdw.c:1517 #7 0x00005581fa63adad in ForeignNext (node=node@entry=0x5581fba6f3d8) at nodeForeignscan.c:54 #8 0x00005581fa61104b in ExecScanFetch (recheckMtd=0x5581fa63adf1 <ForeignRecheck>, accessMtd=0x5581fa63ad2c <ForeignNext>,node=0x5581fba6f3d8) at execScan.c:93 #9 ExecScan (node=0x5581fba6f3d8, accessMtd=accessMtd@entry=0x5581fa63ad2c <ForeignNext>, recheckMtd=recheckMtd@entry=0x5581fa63adf1 <ForeignRecheck>) at execScan.c:143 #10 0x00005581fa63add0 in ExecForeignScan (pstate=<optimized out>) at nodeForeignscan.c:115 #11 0x00005581fa60f3e8 in ExecProcNodeFirst (node=0x5581fba6f3d8) at execProcnode.c:445 #12 0x00005581fa607fdd in ExecProcNode (node=0x5581fba6f3d8) at ../../../src/include/executor/executor.h:239 #13 ExecutePlan (estate=estate@entry=0x5581fba2abb8, planstate=0x5581fba6f3d8, use_parallel_mode=<optimized out>, operation=operation@entry=CMD_SELECT, sendTuples=sendTuples@entry=true, numberTuples=numberTuples@entry=0, direction=ForwardScanDirection, dest=0x5581fba5cac0, execute_once=true) at execMain.c:1648 #14 0x00005581fa608c2a in standard_ExecutorRun (queryDesc=0x5581fba207f8, direction=ForwardScanDirection, count=0, execute_once=<optimizedout>) at execMain.c:365 #15 0x00005581fa608ce5 in ExecutorRun (queryDesc=queryDesc@entry=0x5581fba207f8, direction=direction@entry=ForwardScanDirection, count=count@entry=0, execute_once=<optimized out>) at execMain.c:309 #16 0x00005581fa782d65 in PortalRunSelect (portal=portal@entry=0x5581fb9bb168, forward=forward@entry=true, count=0, count@entry=9223372036854775807, dest=dest@entry=0x5581fba5cac0) at pquery.c:929 #17 0x00005581fa78442c in PortalRun (portal=portal@entry=0x5581fb9bb168, count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=true, run_once=run_once@entry=true, dest=dest@entry=0x5581fba5cac0, altdest=altdest@entry=0x5581fba5cac0, completionTag=0x7ffcad49a330"") at pquery.c:770 #18 0x00005581fa780755 in exec_simple_query ( query_string=query_string@entry=0x5581fb955ac8 "select exists(select c1 from ft4), avg(c1) from ft4 where c1 = (select\nmax(c1)from ft4);") at postgres.c:1215 #19 0x00005581fa78263d in PostgresMain (argc=<optimized out>, argv=argv@entry=0x5581fb981310, dbname=<optimized out>, username=<optimizedout>) at postgres.c:4249 #20 0x00005581fa6f7979 in BackendRun (port=port@entry=0x5581fb978d20) at postmaster.c:4426 #21 0x00005581fa6faa98 in BackendStartup (port=port@entry=0x5581fb978d20) at postmaster.c:4117 #22 0x00005581fa6facbb in ServerLoop () at postmaster.c:1704 #23 0x00005581fa6fc1fc in PostmasterMain (argc=3, argv=<optimized out>) at postmaster.c:1377 #24 0x00005581fa65acf1 in main (argc=3, argv=0x5581fb9501f0) at main.c:228 regards, Sergei
pgsql-bugs by date: