On Mon, 1 Jan 2024 at 19:26, Andy Fan <zhihuifan1...@163.com> wrote: > > > Andy Fan <zhihuifan1...@163.com> writes: > > > > > Some Known issues: > > ------------------ > > > > 1. Currently only Scan & Join nodes are considered for this feature. > > 2. JIT is not adapted for this purpose yet. > > JIT is adapted for this feature in v2. Any feedback is welcome.
One of the tests was aborted at CFBOT [1] with: [09:47:00.735] dumping /tmp/cores/postgres-11-28182.core for /tmp/cirrus-ci-build/build/tmp_install//usr/local/pgsql/bin/postgres [09:47:01.035] [New LWP 28182] [09:47:01.748] [Thread debugging using libthread_db enabled] [09:47:01.748] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [09:47:09.392] Core was generated by `postgres: postgres regression [local] SELECT '. [09:47:09.392] Program terminated with signal SIGSEGV, Segmentation fault. [09:47:09.392] #0 0x00007fa4eed4a5a1 in ?? () [09:47:11.123] [09:47:11.123] Thread 1 (Thread 0x7fa4f8050a40 (LWP 28182)): [09:47:11.123] #0 0x00007fa4eed4a5a1 in ?? () [09:47:11.123] No symbol table info available. ... ... [09:47:11.123] #4 0x00007fa4ebc7a186 in LLVMOrcGetSymbolAddress () at /build/llvm-toolchain-11-HMpQvg/llvm-toolchain-11-11.0.1/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp:124 [09:47:11.123] No locals. [09:47:11.123] #5 0x00007fa4eed6fc7a in llvm_get_function (context=0x564b1813a8a0, funcname=0x7fa4eed4a570 "AWAVATSH\201", <incomplete sequence \354\210>) at ../src/backend/jit/llvm/llvmjit.c:460 [09:47:11.123] addr = 94880527996960 [09:47:11.123] __func__ = "llvm_get_function" [09:47:11.123] #6 0x00007fa4eed902e1 in ExecRunCompiledExpr (state=0x0, econtext=0x564b18269d20, isNull=0x7ffc11054d5f) at ../src/backend/jit/llvm/llvmjit_expr.c:2577 [09:47:11.123] cstate = <optimized out> [09:47:11.123] func = 0x564b18269d20 [09:47:11.123] #7 0x0000564b1698e614 in ExecEvalExprSwitchContext (isNull=0x7ffc11054d5f, econtext=0x564b18269d20, state=0x564b182ad820) at ../src/include/executor/executor.h:355 [09:47:11.123] retDatum = <optimized out> [09:47:11.123] oldContext = 0x564b182680d0 [09:47:11.123] retDatum = <optimized out> [09:47:11.123] oldContext = <optimized out> [09:47:11.123] #8 ExecProject (projInfo=0x564b182ad818) at ../src/include/executor/executor.h:389 [09:47:11.123] econtext = 0x564b18269d20 [09:47:11.123] state = 0x564b182ad820 [09:47:11.123] slot = 0x564b182ad788 [09:47:11.123] isnull = false [09:47:11.123] econtext = <optimized out> [09:47:11.123] state = <optimized out> [09:47:11.123] slot = <optimized out> [09:47:11.123] isnull = <optimized out> [09:47:11.123] #9 ExecMergeJoin (pstate=<optimized out>) at ../src/backend/executor/nodeMergejoin.c:836 [09:47:11.123] node = <optimized out> [09:47:11.123] joinqual = 0x0 [09:47:11.123] otherqual = 0x0 [09:47:11.123] qualResult = <optimized out> [09:47:11.123] compareResult = <optimized out> [09:47:11.123] innerPlan = <optimized out> [09:47:11.123] innerTupleSlot = <optimized out> [09:47:11.123] outerPlan = <optimized out> [09:47:11.123] outerTupleSlot = <optimized out> [09:47:11.123] econtext = 0x564b18269d20 [09:47:11.123] doFillOuter = false [09:47:11.123] doFillInner = false [09:47:11.123] __func__ = "ExecMergeJoin" [09:47:11.123] #10 0x0000564b169275b9 in ExecProcNodeFirst (node=0x564b18269db0) at ../src/backend/executor/execProcnode.c:464 [09:47:11.123] No locals. [09:47:11.123] #11 0x0000564b169a2675 in ExecProcNode (node=0x564b18269db0) at ../src/include/executor/executor.h:273 [09:47:11.123] No locals. [09:47:11.123] #12 ExecRecursiveUnion (pstate=0x564b182684a0) at ../src/backend/executor/nodeRecursiveunion.c:115 [09:47:11.123] node = 0x564b182684a0 [09:47:11.123] outerPlan = 0x564b18268d00 [09:47:11.123] innerPlan = 0x564b18269db0 [09:47:11.123] plan = 0x564b182ddc78 [09:47:11.123] slot = <optimized out> [09:47:11.123] isnew = false [09:47:11.123] #13 0x0000564b1695a421 in ExecProcNode (node=0x564b182684a0) at ../src/include/executor/executor.h:273 [09:47:11.123] No locals. [09:47:11.123] #14 CteScanNext (node=0x564b183a6830) at ../src/backend/executor/nodeCtescan.c:103 [09:47:11.123] cteslot = <optimized out> [09:47:11.123] estate = <optimized out> [09:47:11.123] dir = ForwardScanDirection [09:47:11.123] forward = true [09:47:11.123] tuplestorestate = 0x564b183a5cd0 [09:47:11.123] eof_tuplestore = <optimized out> [09:47:11.123] slot = 0x564b183a6be0 [09:47:11.123] #15 0x0000564b1692e22b in ExecScanFetch (node=node@entry=0x564b183a6830, accessMtd=accessMtd@entry=0x564b1695a183 <CteScanNext>, recheckMtd=recheckMtd@entry=0x564b16959db3 <CteScanRecheck>) at ../src/backend/executor/execScan.c:132 [09:47:11.123] estate = <optimized out> [09:47:11.123] #16 0x0000564b1692e332 in ExecScan (node=0x564b183a6830, accessMtd=accessMtd@entry=0x564b1695a183 <CteScanNext>, recheckMtd=recheckMtd@entry=0x564b16959db3 <CteScanRecheck>) at ../src/backend/executor/execScan.c:181 [09:47:11.123] econtext = 0x564b183a6b50 [09:47:11.123] qual = 0x0 [09:47:11.123] projInfo = 0x0 [09:47:11.123] #17 0x0000564b1695a5ea in ExecCteScan (pstate=<optimized out>) at ../src/backend/executor/nodeCtescan.c:164 [09:47:11.123] node = <optimized out> [09:47:11.123] #18 0x0000564b169a81da in ExecProcNode (node=0x564b183a6830) at ../src/include/executor/executor.h:273 [09:47:11.123] No locals. [09:47:11.123] #19 ExecSort (pstate=0x564b183a6620) at ../src/backend/executor/nodeSort.c:149 [09:47:11.123] plannode = 0x564b182dfb78 [09:47:11.123] outerNode = 0x564b183a6830 [09:47:11.123] tupDesc = <optimized out> [09:47:11.123] tuplesortopts = <optimized out> [09:47:11.123] node = 0x564b183a6620 [09:47:11.123] estate = 0x564b182681d0 [09:47:11.123] dir = ForwardScanDirection [09:47:11.123] tuplesortstate = 0x564b18207ff0 [09:47:11.123] slot = <optimized out> [09:47:11.123] #20 0x0000564b169275b9 in ExecProcNodeFirst (node=0x564b183a6620) at ../src/backend/executor/execProcnode.c:464 [09:47:11.123] No locals. [09:47:11.123] #21 0x0000564b16913d01 in ExecProcNode (node=0x564b183a6620) at ../src/include/executor/executor.h:273 [09:47:11.123] No locals. [09:47:11.123] #22 ExecutePlan (estate=estate@entry=0x564b182681d0, planstate=0x564b183a6620, use_parallel_mode=<optimized out>, operation=operation@entry=CMD_SELECT, sendTuples=sendTuples@entry=true, numberTuples=numberTuples@entry=0, direction=ForwardScanDirection, dest=0x564b182e2728, execute_once=true) at ../src/backend/executor/execMain.c:1670 [09:47:11.123] slot = <optimized out> [09:47:11.123] current_tuple_count = 0 [09:47:11.123] #23 0x0000564b16914024 in standard_ExecutorRun (queryDesc=0x564b181ba200, direction=ForwardScanDirection, count=0, execute_once=<optimized out>) at ../src/backend/executor/execMain.c:365 [09:47:11.123] estate = 0x564b182681d0 [09:47:11.123] operation = CMD_SELECT [09:47:11.123] dest = 0x564b182e2728 [09:47:11.123] sendTuples = true [09:47:11.123] oldcontext = 0x564b181ba100 [09:47:11.123] __func__ = "standard_ExecutorRun" [09:47:11.123] #24 0x0000564b1691418f in ExecutorRun (queryDesc=queryDesc@entry=0x564b181ba200, direction=direction@entry=ForwardScanDirection, count=count@entry=0, execute_once=<optimized out>) at ../src/backend/executor/execMain.c:309 [09:47:11.123] No locals. [09:47:11.123] #25 0x0000564b16d208af in PortalRunSelect (portal=portal@entry=0x564b1817ae10, forward=forward@entry=true, count=0, count@entry=9223372036854775807, dest=dest@entry=0x564b182e2728) at ../src/backend/tcop/pquery.c:924 [09:47:11.123] queryDesc = 0x564b181ba200 [09:47:11.123] direction = <optimized out> [09:47:11.123] nprocessed = <optimized out> [09:47:11.123] __func__ = "PortalRunSelect" [09:47:11.123] #26 0x0000564b16d2405b in PortalRun (portal=portal@entry=0x564b1817ae10, count=count@entry=9223372036854775807, isTopLevel=isTopLevel@entry=true, run_once=run_once@entry=true, dest=dest@entry=0x564b182e2728, altdest=altdest@entry=0x564b182e2728, qc=0x7ffc110551e0) at ../src/backend/tcop/pquery.c:768 [09:47:11.123] _save_exception_stack = 0x7ffc11055290 [09:47:11.123] _save_context_stack = 0x0 [09:47:11.123] _local_sigjmp_buf = {{__jmpbuf = {1, 3431825231787999889, 94880528213800, 94880526221072, 94880526741008, 94880526221000, -3433879442176195951, -8991885832768699759}, __mask_was_saved = 0, __saved_mask = {__val = {140720594047343, 688, 94880526749216, 94880511205302, 1, 140720594047343, 94880526999808, 8, 94880526213088, 112, 179, 94880526221072, 94880526221048, 94880526221000, 94880508502828, 2}}}} [09:47:11.123] _do_rethrow = <optimized out> [09:47:11.123] result = <optimized out> [09:47:11.123] nprocessed = <optimized out> [09:47:11.123] saveTopTransactionResourceOwner = 0x564b18139ad8 [09:47:11.123] saveTopTransactionContext = 0x564b181229f0 [09:47:11.123] saveActivePortal = 0x0 [09:47:11.123] saveResourceOwner = 0x564b18139ad8 [09:47:11.123] savePortalContext = 0x0 [09:47:11.123] saveMemoryContext = 0x564b181229f0 [09:47:11.123] __func__ = "PortalRun" [09:47:11.123] #27 0x0000564b16d1d098 in exec_simple_query (query_string=query_string@entry=0x564b180fa0e0 "with recursive search_graph(f, t, label) as (\n\tselect * from graph0 g\n\tunion all\n\tselect g.*\n\tfrom graph0 g, search_graph sg\n\twhere g.f = sg.t\n) search depth first by f, t set seq\nselect * from search"...) at ../src/backend/tcop/postgres.c:1273 [09:47:11.123] cmdtaglen = 6 [09:47:11.123] snapshot_set = <optimized out> [09:47:11.123] per_parsetree_context = 0x0 [09:47:11.123] plantree_list = 0x564b182e26d8 [09:47:11.123] parsetree = 0x564b180fbec8 [09:47:11.123] commandTag = <optimized out> [09:47:11.123] qc = {commandTag = CMDTAG_UNKNOWN, nprocessed = 0} [09:47:11.123] querytree_list = <optimized out> [09:47:11.123] portal = 0x564b1817ae10 [09:47:11.123] receiver = 0x564b182e2728 [09:47:11.123] format = 0 [09:47:11.123] cmdtagname = <optimized out> [09:47:11.123] parsetree_item__state = {l = <optimized out>, i = <optimized out>} [09:47:11.123] dest = DestRemote [09:47:11.123] oldcontext = 0x564b181229f0 [09:47:11.123] parsetree_list = 0x564b180fbef8 [09:47:11.123] parsetree_item = 0x564b180fbf10 [09:47:11.123] save_log_statement_stats = false [09:47:11.123] was_logged = false [09:47:11.123] use_implicit_block = false [09:47:11.123] msec_str = "\004\000\000\000\000\000\000\000\346[\376\026KV\000\000pR\005\021\374\177\000\000\335\000\000\000\000\000\000" [09:47:11.123] __func__ = "exec_simple_query" [09:47:11.123] #28 0x0000564b16d1fe33 in PostgresMain (dbname=<optimized out>, username=<optimized out>) at ../src/backend/tcop/postgres.c:4653 [09:47:11.123] query_string = 0x564b180fa0e0 "with recursive search_graph(f, t, label) as (\n\tselect * from graph0 g\n\tunion all\n\tselect g.*\n\tfrom graph0 g, search_graph sg\n\twhere g.f = sg.t\n) search depth first by f, t set seq\nselect * from search"... [09:47:11.123] firstchar = <optimized out> [09:47:11.123] input_message = {data = 0x564b180fa0e0 "with recursive search_graph(f, t, label) as (\n\tselect * from graph0 g\n\tunion all\n\tselect g.*\n\tfrom graph0 g, search_graph sg\n\twhere g.f = sg.t\n) search depth first by f, t set seq\nselect * from search"..., len = 221, maxlen = 1024, cursor = 221} [09:47:11.123] local_sigjmp_buf = {{__jmpbuf = {94880520543032, -8991887800862096751, 0, 4, 140720594048004, 1, -3433879442247499119, -8991885813233991023}, __mask_was_saved = 1, __saved_mask = {__val = {4194304, 1, 140346553036196, 94880526187920, 15616, 15680, 94880508418872, 0, 94880526187920, 15616, 94880520537224, 4, 140720594048004, 1, 94880508502235, 1}}}} [09:47:11.123] send_ready_for_query = false [09:47:11.123] idle_in_transaction_timeout_enabled = false [09:47:11.123] idle_session_timeout_enabled = false [09:47:11.123] __func__ = "PostgresMain" [09:47:11.123] #29 0x0000564b16bcc4e4 in BackendRun (port=port@entry=0x564b18126f50) at ../src/backend/postmaster/postmaster.c:4464 [1] - https://cirrus-ci.com/task/4765094966460416 Regards, Vignesh