最大10MBの共有メモリをallocしてfreeする処理を各クライアント並列で繰り返し実行すると、SIGSEGVでクラッシュする。
backtrace:
#0 0x00007f4e4903127c in dlist_delete (node=0x7f4dc8c702e0)
at /usr/local/nanzai/include/postgresql/server/lib/ilist.h:387
#1 0x00007f4e490312b8 in dlist_pop_head_node (head=0x7f4dc8a6a200)
at /usr/local/nanzai/include/postgresql/server/lib/ilist.h:401
#2 0x00007f4e4903157f in pgstrom_shmem_zone_block_alloc (zone=0x7f4dc8a6a000, size=2877645)
#3 0x00007f4e490318d2 in pgstrom_shmem_alloc (size=2877645) at shmem.c:315
#4 0x00007f4e4903694c in pgstrom_shmem_alloc_func (fcinfo=0x7fffa3ea63c0) at debug.c:113
#5 0x000000000060cf10 in ExecMakeTableFunctionResult (funcexpr=0x2b4a480, econtext=0x2b4a110,
expectedDesc=0x2b4ad10, randomAccess=0 '\000') at execQual.c:2164
#6 0x000000000062bb64 in FunctionNext (node=0x2b4a000) at nodeFunctionscan.c:95
#7 0x0000000000613e06 in ExecScanFetch (node=0x2b4a000, accessMtd=0x62babb ,
recheckMtd=0x62be91 <FunctionRecheck>) at execScan.c:78
#8 0x0000000000613e7a in ExecScan (node=0x2b4a000, accessMtd=0x62babb ,
recheckMtd=0x62be91 <FunctionRecheck>) at execScan.c:128
#9 0x000000000062bec9 in ExecFunctionScan (node=0x2b4a000) at nodeFunctionscan.c:266
#10 0x000000000060953d in ExecProcNode (node=0x2b4a000) at execProcnode.c:433
#11 0x00000000006074dc in ExecutePlan (estate=0x2b49ef0, planstate=0x2b4a000,
operation=CMD_SELECT, sendTuples=1 '\001', numberTuples=1, direction=ForwardScanDirection,
dest=0xc9c480) at execMain.c:1475
#12 0x00000000006058af in standard_ExecutorRun (queryDesc=0x2b2d170,
direction=ForwardScanDirection, count=1) at execMain.c:308
#13 0x00000000006057a0 in ExecutorRun (queryDesc=0x2b2d170, direction=ForwardScanDirection,
count=1) at execMain.c:256
#14 0x000000000063c0a7 in _SPI_pquery (queryDesc=0x2b2d170, fire_triggers=1 '\001', tcount=1)
#15 0x000000000063bbde in _SPI_execute_plan (plan=0x2b46240, paramLI=0x2b17540, snapshot=0x0,
crosscheck_snapshot=0x0, read_only=0 '\000', fire_triggers=1 '\001', tcount=1) at spi.c:2163
#16 0x0000000000638c87 in SPI_execute_plan_with_paramlist (plan=0x2b46240, params=0x2b17540,
read_only=0 '\000', tcount=1) at spi.c:449
#17 0x00007f4dc792ecd7 in exec_stmt_execsql (estate=0x7fffa3ea7030, stmt=0x2b30e48)
#18 0x00007f4dc792b2c9 in exec_stmt (estate=0x7fffa3ea7030, stmt=0x2b30e48) at pl_exec.c:1469
#19 0x00007f4dc792afff in exec_stmts (estate=0x7fffa3ea7030, stmts=0x2b30c18) at pl_exec.c:1368
#20 0x00007f4dc792bcf4 in exec_stmt_while (estate=0x7fffa3ea7030, stmt=0x2b313e8) at pl_exec.c:1839
#21 0x00007f4dc792b1bb in exec_stmt (estate=0x7fffa3ea7030, stmt=0x2b313e8) at pl_exec.c:1429
#22 0x00007f4dc792afff in exec_stmts (estate=0x7fffa3ea7030, stmts=0x2b31438) at pl_exec.c:1368
#23 0x00007f4dc792aeaa in exec_stmt_block (estate=0x7fffa3ea7030, block=0x2b314b8)
#24 0x00007f4dc79290d2 in plpgsql_exec_function (func=0x2b08f40, fcinfo=0x2a98690,
simple_eval_estate=0x0) at pl_exec.c:344
#25 0x00007f4dc7923a53 in plpgsql_call_handler (fcinfo=0x2a98690) at pl_handler.c:243
#26 0x000000000060c6fd in ExecMakeFunctionResult (fcache=0x2a98620, econtext=0x2a98430,
isNull=0x2a99028 "", isDone=0x2a99140) at execQual.c:1795
#27 0x000000000060d484 in ExecEvalFunc (fcache=0x2a98620, econtext=0x2a98430, isNull=0x2a99028 "",
isDone=0x2a99140) at execQual.c:2380
#28 0x0000000000613687 in ExecTargetList (targetlist=0x2a99110, econtext=0x2a98430,
values=0x2a99010, isnull=0x2a99028 "", itemIsDone=0x2a99140, isDone=0x7fffa3ea7514)
at execQual.c:5267
#29 0x0000000000613c63 in ExecProject (projInfo=0x2a99040, isDone=0x7fffa3ea7514)
#30 0x000000000062d006 in ExecResult (node=0x2a98320) at nodeResult.c:155
#31 0x0000000000609456 in ExecProcNode (node=0x2a98320) at execProcnode.c:380
#32 0x00000000006074dc in ExecutePlan (estate=0x2a98210, planstate=0x2a98320,
operation=CMD_SELECT, sendTuples=1 '\001', numberTuples=0, direction=ForwardScanDirection,
dest=0x2adea18) at execMain.c:1475
#33 0x00000000006058af in standard_ExecutorRun (queryDesc=0x2aa4570,
direction=ForwardScanDirection, count=0) at execMain.c:308
#34 0x00000000006057a0 in ExecutorRun (queryDesc=0x2aa4570, direction=ForwardScanDirection,
count=0) at execMain.c:256
#35 0x0000000000756390 in PortalRunSelect (portal=0x2aa2560, forward=1 '\001', count=0,
dest=0x2adea18) at pquery.c:946
#36 0x0000000000756068 in PortalRun (portal=0x2aa2560, count=9223372036854775807,
isTopLevel=1 '\001', dest=0x2adea18, altdest=0x2adea18, completionTag=0x7fffa3ea7860 "")
at pquery.c:790
#37 0x000000000075047d in exec_simple_query (query_string=0x2add0d0 "select shmem_open_loop(1);")
#38 0x0000000000754482 in PostgresMain (argc=1, argv=0x2a7ee68, dbname=0x2a7ed98 "nanzai",
username=0x2a7ed80 "nanzai") at postgres.c:4004
#39 0x00000000006e7f85 in BackendRun (port=0x2aa6540) at postmaster.c:4104
#40 0x00000000006e76e0 in BackendStartup (port=0x2aa6540) at postmaster.c:3778
#41 0x00000000006e4106 in ServerLoop () at postmaster.c:1569
#42 0x00000000006e3885 in PostmasterMain (argc=1, argv=0x2a7dde0) at postmaster.c:1222
#43 0x000000000064d0d7 in main (argc=1, argv=0x2a7dde0) at main.c:223