postgrespro / pg_pathman

Partitioning tool for PostgreSQL
Other
584 stars 68 forks source link

Segmentation dynamic fault in the postgres 9.6.9 and higher #184

Closed NikitinNikolay closed 5 years ago

NikitinNikolay commented 5 years ago

Здравствуйте!

Конфигурация Red Hat Enterprise Linux Server release 6.10 (Santiago) + PostgreSQL 9.6.9 + pg_pathman 1.5.2

Сразу после установки нашей схемы на бд возникает ошибка: В логе постгреса < 2018-11-13 22:20:24.258 MSK > LOG: server process (PID 3065) was terminated by signal 11: Segmentation fault

В ходе установки схемы мы делаем 24 табличных пространства с 24 партициями таблиц внутри. Каждое тп коммитится отдельно. Сразу после создания тп к схеме разрешаются коннекты и туда ломится несколько сервисов, в одном из них и возникает ошибка.

Проблема проявляется в версии 9.6.9 и 6.9.10, в версиях 9.6.8 и ниже её нет. Ошибка возникает в функции постгреса, но её вызов осуществляется из Вашего хука. Может там в хуке надо что-то надо дополнительное проверять, либо вызывать другую функцию постгрес?

Стек вызовов:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  extract_actual_join_clauses (restrictinfo_list=0x1cea990, joinrelids=0x7fff7fdb6358, joinquals=0x7fff7fdb6350, otherquals=0x2) at restrictinfo.c:428
428     restrictinfo.c: No such file or directory.
(gdb) thread apply all bt full

Thread 1 (Thread 0x7f9bdcd2a7c0 (LWP 61311)):
#0  extract_actual_join_clauses (restrictinfo_list=0x1cea990, joinrelids=0x7fff7fdb6358, joinquals=0x7fff7fdb6350, otherquals=0x2) at restrictinfo.c:428
        l = <optimized out>
#1  0x00007f9bd1db5592 in pathman_join_pathlist_hook (root=0x1732b10, joinrel=0x1cea6a8, outerrel=0x1788ee0, innerrel=0x17899d0, jointype=JOIN_ANTI, extra=0x7fff7fdb64b0) at src/hooks.c:171
        workspace = {
          startup_cost = 1.4982137552568795e-316,
          total_cost = 6.9532495894957877e-310,
          run_cost = 6.9532495894957877e-310,
          inner_run_cost = 6.9532495895175266e-310,
          inner_rescan_run_cost = 1.2018087547210821e-316,
          outer_rows = 1.0624959851286028e-313,
          inner_rows = 246.30999999999992,
          outer_skip_rows = 7772.8099999999995,
          inner_skip_rows = 7526.5,
          numbuckets = 30320296,
          numbatches = 0
        }
        saved_jointype = JOIN_ANTI
        inner_rte = <optimized out>
        inner_prel = 0x16a8278
        joinclauses = <optimized out>
        otherclauses = <optimized out>
        context = {
          prel_expr = 0x1789538,
          prel = 0x7fc9ac <palloc+44>,
          econtext = 0x17899d0
        }
        paramsel = <optimized out>
        part_expr = <optimized out>
        lc = <optimized out>
        __func__ = "pathman_join_pathlist_hook"
#2  0x0000000000640c44 in add_paths_to_joinrel (root=<optimized out>, joinrel=<optimized out>, outerrel=<optimized out>, innerrel=<optimized out>, jointype=JOIN_ANTI, sjinfo=0x178ec60, restrictlist=0x1cea990) at joinpath.c:229
        extra = {
          restrictlist = 0x1cea990,
          mergeclause_list = 0x1ceaad0,
          sjinfo = 0x178e378,
          semifactors = {
            outer_match_frac = 0.5,
            match_count = 1
          },
          param_source_rels = 0x0
        }
        mergejoin_allowed = <optimized out>
        lc = <optimized out>
#3  0x0000000000642fb4 in make_join_rel (root=0x1732b10, rel1=0x1788ee0, rel2=0x17899d0) at joinrels.c:863
        joinrelids = 0x1cea690
        sjinfo = 0x178e378
        reversed = 0 '\000'
        sjinfo_data = {
          type = 23757432,
          min_lefthand = 0x0,
          min_righthand = 0x0,
          syn_lefthand = 0x16a83e0,
          syn_righthand = 0x17899d0,
          jointype = JOIN_INNER,
          lhs_strict = 0 '\000',
          delay_upper_joins = 0 '\000',
          semi_can_btree = 0 '\000',
          semi_can_hash = 0 '\000',
          semi_operators = 0x1792930,
          semi_rhs_exprs = 0x16a8278
--Type <RET> for more, q to quit, c to continue without paging--
        }
        joinrel = 0x1cea6a8
        restrictlist = 0x1cea990
        __func__ = "make_join_rel"
#4  0x0000000000643188 in make_rels_by_clause_joins (other_rels=<optimized out>, old_rel=<optimized out>, root=<optimized out>) at joinrels.c:275
        other_rel = 0x17899d0
        l = 0x1cea640
        l = <optimized out>
        other_rel = <optimized out>
#5  join_search_one_level (root=0x1732b10, level=2) at joinrels.c:97
        other_rels = <optimized out>
        old_rel = 0x1788ee0
        joinrels = 0x1cea660
        r = 0x1cea5f0
        k = <optimized out>
        __func__ = "join_search_one_level"
#6  0x0000000000631d83 in standard_join_search (root=0x1732b10, levels_needed=2, initial_rels=<optimized out>) at allpaths.c:2186
        lc = <optimized out>
        lev = <optimized out>
        rel = <optimized out>
        __func__ = "standard_join_search"
#7  0x0000000000633eeb in make_one_rel (root=0x1732b10, joinlist=0x178e258) at allpaths.c:176
        rel = <optimized out>
        rti = <optimized out>
#8  0x000000000064eba9 in query_planner (root=0x1732b10, tlist=<optimized out>, qp_callback=0x64f810 <standard_qp_callback>, qp_extra=0x7fff7fdb67f0) at planmain.c:255
        parse = 0x16a4878
        joinlist = 0x178e258
        final_rel = <optimized out>
        rti = <optimized out>
        total_pages = <optimized out>
        __func__ = "query_planner"
#9  0x0000000000651b65 in grouping_planner (root=<optimized out>, inheritance_update=0 '\000', tuple_fraction=<optimized out>) at planner.c:1695
        scanjoin_target = <optimized out>
        have_grouping = <optimized out>
        agg_costs = {
          numAggs = 0,
          numOrderedAggs = 0,
          hasNonPartial = 0 '\000',
          hasNonSerial = 0 '\000',
          transCost = {
            startup = 0,
            per_tuple = 0
          },
          finalCost = 0,
          transitionSpace = 0
        }
        activeWindows = 0x0
        rollup_lists = 0x0
        rollup_groupclauses = 0x0
        qp_extra = {
          tlist = 0x17332a0,
          activeWindows = 0x0,
          groupClause = 0x0
        }
        sort_input_target = <optimized out>
        grouping_target = <optimized out>
        wflists = 0x0
        parse = <optimized out>
        tlist = 0x17332a0
        offset_est = 0
        count_est = 20
        limit_tuples = 20
--Type <RET> for more, q to quit, c to continue without paging--
        have_postponed_srfs = 0 '\000'
        tlist_rows = <optimized out>
        final_target = <optimized out>
        current_rel = <optimized out>
        final_rel = <optimized out>
        lc = <optimized out>
        __func__ = "grouping_planner"
#10 0x0000000000653579 in subquery_planner (glob=<optimized out>, parse=<optimized out>, parent_root=<optimized out>, hasRecursion=<optimized out>, tuple_fraction=0) at planner.c:759
        root = 0x1732b10
        newWithCheckOptions = <optimized out>
        newHaving = <optimized out>
        hasOuterJoins = <optimized out>
        final_rel = <optimized out>
        l = <optimized out>
#11 0x00000000006581ba in SS_process_ctes (root=0x172cc98) at subselect.c:1181
        subquery = <optimized out>
        cte = 0x165fc88
        cmdType = <optimized out>
        subroot = <optimized out>
        final_rel = <optimized out>
        best_path = <optimized out>
        plan = <optimized out>
        splan = <optimized out>
        paramid = <optimized out>
        lc = 0x165fc68
        __func__ = "SS_process_ctes"
#12 0x0000000000652eac in subquery_planner (glob=0x16a3c08, parse=0x165fb28, parent_root=0x0, hasRecursion=0 '\000', tuple_fraction=0) at planner.c:480
        root = 0x172cc98
        newWithCheckOptions = <optimized out>
        newHaving = <optimized out>
        hasOuterJoins = <optimized out>
        final_rel = <optimized out>
        l = <optimized out>
#13 0x0000000000654301 in standard_planner (parse=0x165fb28, cursorOptions=0, boundParams=0x1639078) at planner.c:292
        result = <optimized out>
        glob = 0x16a3c08
        tuple_fraction = <optimized out>
        root = <optimized out>
        final_rel = <optimized out>
        best_path = <optimized out>
        top_plan = <optimized out>
        lp = <optimized out>
        lr = <optimized out>
#14 0x00007f9bd1db4b96 in pathman_planner_hook (parse=0x165fb28, cursorOptions=0, boundParams=0x1639078) at src/hooks.c:671
        save_exception_stack = 0x7fff7fdb72a0
        save_context_stack = 0x7fff7fdb6df0
        local_sigjmp_buf = {{
            __jmpbuf = {23460616, -2712429457635269071, 0, 23302264, 23302264, 0, 2712711176773969457, 2696565946972644913},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {10, 23738392, 8375803, 24372616, 23738552, 22750104, 8376033, 24394184, 23738472, 22750104, 6365325, 24394104, 23738440, 22750104, 6379995, 22750104}
            }
          }}
        result = <optimized out>
        query_id = 2776362967
        pathman_ready = 1 '\001'
#15 0x00000000006e0fba in pg_plan_query (querytree=<optimized out>, cursorOptions=<optimized out>, boundParams=<optimized out>) at postgres.c:790
        plan = <optimized out>
#16 0x00000000006e10a4 in pg_plan_queries (querytrees=<optimized out>, cursorOptions=0, boundParams=0x1639078) at postgres.c:849
        query = <optimized out>
        stmt = <optimized out>
        stmt_list = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
        query_list = 0x165fb08
#17 0x00000000007c8ed6 in BuildCachedPlan (plansource=0x169de18, qlist=0x165fad8, boundParams=0x1639078) at plancache.c:942
        plan = <optimized out>
        plist = <optimized out>
        snapshot_set = 0 '\000'
        spi_pushed = 0 '\000'
        is_transient = <optimized out>
        plan_context = <optimized out>
        oldcxt = 0x15b2398
        lc = <optimized out>
#18 0x00000000007c9256 in GetCachedPlan (plansource=0x169de18, boundParams=0x1639078, useResOwner=1 '\001') at plancache.c:1219
        plan = <optimized out>
        qlist = <optimized out>
        customplan = 1 '\001'
        __func__ = "GetCachedPlan"
#19 0x00000000005f671b in _SPI_execute_plan (plan=0x17446e8, paramLI=0x1639078, snapshot=<optimized out>, crosscheck_snapshot=0x0, read_only=0 '\000', fire_triggers=1 '\001', tcount=1) at spi.c:2105
        plansource = 0x169de18
        stmt_list = <optimized out>
        lc2 = <optimized out>
        my_res = <optimized out>
        my_processed = <optimized out>
        my_lastoid = <optimized out>
        my_tuptable = <optimized out>
        res = <optimized out>
        pushed_active_snap = 0 '\000'
        spierrcontext = {
          previous = 0x7fff7fdb7210,
          callback = 0x5f4970 <_SPI_error_callback>,
          arg = 0x1685780
        }
        cplan = 0x0
        lc1 = 0x1744738
        __func__ = "_SPI_execute_plan"
#20 0x00000000005f6f5c in SPI_execute_plan_with_paramlist (plan=0x17446e8, params=<optimized out>, read_only=0 '\000', tcount=<optimized out>) at spi.c:452
        res = 0
#21 0x00007f9b85868477 in exec_stmt_execsql (estate=0x7fff7fdb7140, stmt=0x162a1d0) at pl_exec.c:3515
        paramLI = <optimized out>
        tcount = <optimized out>
        rc = <optimized out>
        expr = 0x162a140
        __func__ = "exec_stmt_execsql"
#22 0x00007f9b85869e8b in exec_stmt (stmt=0x162a1d0, estate=0x7fff7fdb7140) at pl_exec.c:1503
        save_estmt = 0x16538d0
        rc = -1
        save_estmt = <optimized out>
        rc = <optimized out>
#23 exec_stmts (estate=0x7fff7fdb7140, stmts=<optimized out>) at pl_exec.c:1398
        stmt = 0x162a1d0
        rc = 3
        s = 0x162a220
#24 0x00007f9b8586b228 in exec_stmt_block (estate=0x7fff7fdb7140, block=0x16538d0) at pl_exec.c:1336
        rc = -1
        i = <optimized out>
        n = <optimized out>
        __func__ = "exec_stmt_block"
#25 0x00007f9b8586bdfc in plpgsql_exec_function (func=0x15b4908, fcinfo=0x7fff7fdb75e0, simple_eval_estate=<optimized out>) at pl_exec.c:434
        estate = {
          func = 0x15b4908,
          retval = 0,
          retisnull = 1 '\001',
          rettype = 0,
          fn_rettype = 2249,
--Type <RET> for more, q to quit, c to continue without paging--
          retistuple = 1 '\001',
          retisset = 1 '\001',
          readonly_func = 0 '\000',
          rettupdesc = 0x0,
          exitlabel = 0x0,
          cur_error = 0x0,
          tuple_store = 0x0,
          tuple_store_cxt = 0x15b1108,
          tuple_store_owner = 0x15b03e8,
          rsi = 0x7fff7fdb7540,
          found_varno = 10,
          ndatums = 17,
          datums = 0x1621b60,
          paramLI = 0x1639078,
          params_dirty = 0 '\000',
          simple_eval_estate = 0x1656aa8,
          cast_hash = 0x161e2a8,
          cast_hash_context = 0x15b1a88,
          eval_tuptable = 0x0,
          eval_processed = 1,
          eval_lastoid = 0,
          eval_econtext = 0x1656bb8,
          err_stmt = 0x162a1d0,
          err_text = 0x0,
          plugin_info = 0x0
        }
        plerrcontext = {
          previous = 0x0,
          callback = 0x7f9b85869130 <plpgsql_exec_error_callback>,
          arg = 0x7fff7fdb7140
        }
        i = <optimized out>
        rc = <optimized out>
        __func__ = "plpgsql_exec_function"
#26 0x00007f9b8585f93a in plpgsql_call_handler (fcinfo=0x7fff7fdb75e0) at pl_handler.c:255
        save_exception_stack = 0x7fff7fdb73b0
        save_context_stack = 0x0
        local_sigjmp_buf = {{
            __jmpbuf = {140307400623080, -2712432509875378639, 0, 0, 1, 1, 2712711177073862193, 2696680688567461425},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {0, 0, 0, 0, 0, 0, 0, 0, 140307400623080, 0, 140307400623080, 22741992, 8381997, 23309432, 140307400623080, 140307400623024}
            }
          }}
        func = 0x15b4908
        save_cur_estate = 0x0
        retval = <optimized out>
        rc = <optimized out>
        __func__ = "plpgsql_call_handler"
#27 0x00000000007e24d9 in fmgr_security_definer (fcinfo=0x7fff7fdb75e0) at fmgr.c:972
        save_exception_stack = 0x7fff7fdb7b40
        save_context_stack = 0x0
        local_sigjmp_buf = {{
            __jmpbuf = {140307400623080, -2712432509875378639, 0, 0, 1, 1, 2712711177019336241, -2712430057738197455},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {140307400623080, 140307400623024, 8146824, 23317784, 128, 323235, 5255350, 140307400659738, 140307400659738, 1043, 1043, 140735338477248, 23309432, 326404, 23309432, 326404}
            }
          }}
        result = <optimized out>
        fcache = 0x163cd68
        save_flinfo = 0x163ac98
--Type <RET> for more, q to quit, c to continue without paging--
        save_userid = <optimized out>
        save_sec_context = 0
        save_nestlevel = 0
        fcusage = {
          fs = 0x0,
          save_f_total_time = {
            tv_sec = 23309464,
            tv_usec = 0
          },
          save_total = {
            tv_sec = 6092529,
            tv_usec = 0
          },
          f_start = {
            tv_sec = 0,
            tv_usec = 0
          }
        }
        __func__ = "fmgr_security_definer"
#28 0x00000000005d4f91 in ExecMakeTableFunctionResult (funcexpr=0x163ac78, econtext=0x163a688, argContext=<optimized out>, expectedDesc=0x163bc88, randomAccess=0 '\000') at execQual.c:2211
        result = 0
        tupstore = 0x0
        tupdesc = 0x0
        funcrettype = 2249
        returnsTuple = 1 '\001'
        returnsSet = 1 '\001'
        fcinfo = {
          flinfo = 0x163cd68,
          context = 0x0,
          resultinfo = 0x7fff7fdb7540,
          fncollation = 0,
          isnull = 0 '\000',
          nargs = 3,
          arg = {23162720, 23162856, 23162992, 6340466, 23295080, 140735338477248, 22678320, 0, 0, 6509113, 0, 0, 0, 0, 0, 140307400661096, 0, 140307400661096, 22206200, 8381997, 140735338477328, 24, 656, 23297152, 23295192, 8374700,
            4598175219545276416, 23297152, 23296128, 6348719, 0, 23297152, 0, 6349402, 0, 22678320, 0, 6719099, 23294976, 23297152, 23295192, 23295192, 0, 24, 0, 23297152, 0, 24, 656, 23296160, 22676760, 2210768819039041340, 22536584,
            8144710, 22536584, 140307400661096, 140307400661040, 22536584, 140735338477600, 8152441, 23296128, 140735338477600, 1, 24, 23298304, 13705588649857441711, 140307400661096, 12908199040, 1125891316908032, 0, 7733248,
            281483566645432, 2, 0, 22201848, 0, 1043, 8257194, 0, 0, 0, 421112953438208, 1043, 8254819, 140735338478768, 0, 0, 702587930148864, 1043, 1043, 0, 13705588649851092992, 140307400661096, 12893180660, 1125891316908032, 0,
            7743440, 281483566645432, 2, 0},
          argnull = "\000\000\000\001", '\000' <repeats 12 times>, "\023\004", '\000' <repeats 81 times>
        }
        fcusage = {
          fs = 0x0,
          save_f_total_time = {
            tv_sec = 140735338477248,
            tv_usec = 22680048
          },
          save_total = {
            tv_sec = 140735338477248,
            tv_usec = 140735338477248
          },
          f_start = {
            tv_sec = 6509113,
            tv_usec = 1043
          }
        }
        rsinfo = {
          type = T_ReturnSetInfo,
          econtext = 0x163a688,
          expectedDesc = 0x163bc88,
          allowedModes = 11,
          returnMode = SFRM_ValuePerCall,
          isDone = ExprSingleResult,
--Type <RET> for more, q to quit, c to continue without paging--
          setResult = 0x0,
          setDesc = 0x0
        }
        tmptup = {
          t_len = 0,
          t_self = {
            ip_blkid = {
              bi_hi = 0,
              bi_lo = 0
            },
            ip_posid = 0
          },
          t_tableOid = 0,
          t_data = 0x0
        }
        callerContext = 0x15b1108
        oldcontext = <optimized out>
        direct_function_call = 1 '\001'
        first_time = 1 '\001'
        __func__ = "ExecMakeTableFunctionResult"
#29 0x00000000005ea0f2 in FunctionNext (node=0x163a578) at nodeFunctionscan.c:95
        tstore = 0x0
        estate = <optimized out>
        direction = ForwardScanDirection
        scanslot = 0x163a848
        alldone = <optimized out>
        oldpos = <optimized out>
        funcno = <optimized out>
        att = <optimized out>
#30 0x00000000005d5c45 in ExecScanFetch (recheckMtd=0x5e9770 <FunctionRecheck>, accessMtd=0x5e9e40 <FunctionNext>, node=0x163a578) at execScan.c:95
        estate = <optimized out>
        estate = <optimized out>
        scanrelid = <optimized out>
        slot = <optimized out>
        slot = <optimized out>
#31 ExecScan (node=0x163a578, accessMtd=0x5e9e40 <FunctionNext>, recheckMtd=0x5e9770 <FunctionRecheck>) at execScan.c:145
        econtext = 0x163a688
        qual = 0x0
        projInfo = 0x0
        isDone = <optimized out>
        resultSlot = <optimized out>
#32 0x00000000005ce6f8 in ExecProcNode (node=0x163a578) at execProcnode.c:449
        result = <optimized out>
        __func__ = "ExecProcNode"
#33 0x00000000005cc2ea in ExecutePlan (dest=0x159f898, direction=<optimized out>, numberTuples=0, sendTuples=1 '\001', operation=CMD_SELECT, use_parallel_mode=<optimized out>, planstate=0x163a578, estate=0x163a468) at execMain.c:1566
        slot = <optimized out>
        current_tuple_count = 0
        slot = <optimized out>
        current_tuple_count = <optimized out>
#34 standard_ExecutorRun (queryDesc=0x1616438, direction=<optimized out>, count=0) at execMain.c:338
        estate = 0x163a468
        operation = CMD_SELECT
        dest = 0x159f898
        sendTuples = <optimized out>
        oldcontext = 0x15b0ee8
#35 0x00007f9bd21d04fb in pgss_ExecutorRun (queryDesc=0x1616438, direction=ForwardScanDirection, count=0) at pg_stat_statements.c:877
        save_exception_stack = 0x7fff7fdb7cd0
        save_context_stack = 0x0
        local_sigjmp_buf = {{
            __jmpbuf = {22058344, -2712429457635269071, 1, 0, 23159864, 0, 2712711177304548913, 2696574246789064241},
            __mask_was_saved = 0,
            __saved_mask = {
--Type <RET> for more, q to quit, c to continue without paging--
              __val = {0, 23159864, 23307368, 23159864, 6080560, 22741760, 24, 0, 1, 0, 8375803, 0, 8374417, 22853896, 8442337, 2147483647}
            }
          }}
#36 0x00000000006e36b7 in PortalRunSelect (portal=0x1509568, forward=<optimized out>, count=0, dest=<optimized out>) at pquery.c:948
        queryDesc = 0x1616438
        direction = <optimized out>
        nprocessed = <optimized out>
        __func__ = "PortalRunSelect"
#37 0x00000000006e4888 in PortalRun (portal=0x1509568, count=9223372036854775807, isTopLevel=1 '\001', dest=0x159f898, altdest=0x159f898, completionTag=0x7fff7fdb7e00 "") at pquery.c:789
        save_exception_stack = 0x7fff7fdb7ee0
        save_context_stack = 0x0
        local_sigjmp_buf = {{
            __jmpbuf = {22058344, -2712429457634875855, 9223372036854775807, 22673560, 23159544, 0, 2712711177407309361, -2712430198356826575},
            __mask_was_saved = 0,
            __saved_mask = {
              __val = {0, 140307122268160, 2, 595513786054746, 58, 23159464, 140307372296170, 140307122268160, 88, 3, 0, 0, 8374417, 22058344, 3, 3}
            }
          }}
        result = <optimized out>
        nprocessed = <optimized out>
        saveTopTransactionResourceOwner = 0x152d6f8
        saveTopTransactionContext = 0x14eb408
        saveActivePortal = 0x0
        saveResourceOwner = 0x152d6f8
        savePortalContext = 0x0
        saveMemoryContext = 0x14ea088
        __func__ = "PortalRun"
#38 0x00000000006e0bc3 in exec_execute_message (portal_name=0x159f488 "", max_rows=9223372036854775807) at postgres.c:1969
        dest = DestRemoteExecute
        receiver = 0x159f898
        portal = 0x1509568
        completed = <optimized out>
        completionTag = "\000\000\000\000\000\000\000\000hw`\000\000\000\000\267P~\333\177\377\177\000\000\061t`", '\000' <repeats 13 times>, "\364QG\000\000\000\000\000\211\364Y\001\000\000\000\000\020ma\001\000\000\000"
        sourceText = 0x16162a8 "select * from pkg_deliver_get_objects_for_sent($1, $2, $3)"
        prepStmtName = 0x16162f8 "GetObjectsRequest"
        portalParams = 0x1616328
        save_log_statement_stats = 0 '\000'
        is_xact_command = <optimized out>
        execute_is_fetch = 0 '\000'
        was_logged = 0 '\000'
        msec_str = "\320\177\333\177\377\177\000\000\000\000\000\000\000\000\000\000E\000\000\000\000\000\000\000Q\000\000\000\000\000\000"
        __func__ = "exec_execute_message"
#39 0x00000000006e261a in PostgresMain (argc=<optimized out>, argv=<optimized out>, dbname=0x15234c8 "postgres", username=<optimized out>) at postgres.c:4135
        portal_name = 0x159f488 ""
        max_rows = 0
        firstchar = <optimized out>
        input_message = {
          data = 0x159f488 "",
          len = 5,
          maxlen = 1024,
          cursor = 5
        }
        local_sigjmp_buf = {{
            __jmpbuf = {140735338479536, -2712429457635137999, 1, 1542198583, -9187201950435737471, 0, 2712711177451349553, -2712430195305470415},
            __mask_was_saved = 1,
            __saved_mask = {
              __val = {0, 0, 4294967295, 12671992, 1, 12671336, 0, 9259542123273814145, 0, 0, 1024, 22164904, 12736896, 1542198583, 8374700, 22141968}
            }
          }}
        send_ready_for_query = 0 '\000'
        disable_idle_in_transaction_timeout = 0 '\000'
        __func__ = "PostgresMain"
--Type <RET> for more, q to quit, c to continue without paging--
#40 0x0000000000682b15 in BackendRun (port=0x151dc10) at postmaster.c:4342
        ac = 1
        secs = <optimized out>
        usecs = 973897
        i = 1
        av = 0x15235a8
        maxac = <optimized out>
        av = <optimized out>
        maxac = <optimized out>
        ac = <optimized out>
        secs = <optimized out>
        usecs = <optimized out>
        i = <optimized out>
#41 BackendStartup (port=0x151dc10) at postmaster.c:4016
        bn = <optimized out>
        pid = 0
        bn = <optimized out>
        pid = <optimized out>
        save_errno = <optimized out>
#42 ServerLoop () at postmaster.c:1721
        port = <optimized out>
        i = <optimized out>
        rmask = {
          fds_bits = {16, 0 <repeats 15 times>}
        }
        selres = <optimized out>
        now = <optimized out>
        readmask = {
          fds_bits = {120, 0 <repeats 15 times>}
        }
        nSockets = 7
        last_lockfile_recheck_time = 1542198583
        last_touch_time = 1542195806
        readmask = <optimized out>
        nSockets = <optimized out>
        last_lockfile_recheck_time = <optimized out>
        last_touch_time = <optimized out>
        rmask = <optimized out>
        selres = <optimized out>
        now = <optimized out>
        timeout = <optimized out>
        i = <optimized out>
        port = <optimized out>
#43 PostmasterMain (argc=<optimized out>, argv=<optimized out>) at postmaster.c:1329
        opt = <optimized out>
        status = <optimized out>
        userDoption = <optimized out>
        listen_addr_saved = <optimized out>
        i = <optimized out>
        output_config_variable = <optimized out>
        __func__ = "PostmasterMain"
#44 0x000000000060a438 in main (argc=3, argv=0x14e9db0) at main.c:228
NikitinNikolay commented 5 years ago

При выключении pg_pathman.enable = off, ошибка пропадает, хотя партиции также создаются. При включенном pathman ошибка вылезает всегда.

ildus commented 5 years ago

Очень странная ошибка, там берется адрес переменной и отправляется в функцию, но уходит 0x2. Вы пробовали перекомпилировать pg_pathman? Просто в 9.6.9 поменялась эта функция, а в 9.6.8 еще было три аргумента, что в принципе объясняет баг. Перед компиляцией главное не забыть сделать make clean

NikitinNikolay commented 5 years ago

Спасибо, попробуем.

NikitinNikolay commented 5 years ago

Перекомпилировали - всё заработало. Спасибо за подсказку.