On 11/6/18 4:48 PM, Tomas Vondra wrote:
> On 11/6/18 3:31 PM, Nikita Glukhov wrote:
>> On 29.10.2018 2:20, Tomas Vondra wrote:>
>>
>> ...
>>>
>>> 9) It's generally a good idea to make the individual pieces committable
>>> separately, but that means e.g. the regression tests have to pass after
>>> each patch. At the moment that does not seem to be the case for 0002,
>>> see the attached file. I'm running with -DRANDOMIZE_ALLOCATED_MEMORY,
>>> not sure if that's related.
>>
>> This should definitely be a bug in json support, but I can't reproduce
>> it simply by defining -DRANDOMIZE_ALLOCATED_MEMORY.  Could you provide
>> a stack trace at least?
>>
> I'll try.
> 

Not sure why you can't reproduce the failures, it's perfectly
reproducible for me. For the record, I'm doing this:

./configure --prefix=/home/user/pg-jsonpath --enable-debug
--enable-cassert CFLAGS="-O0 -DRANDOMIZE_ALLOCATED_MEMORY" && make -s
clean && make -s -j4 && make check

After sticking Assert(false) to JsonEncodeJsonbValue (to the default
case), I get a failure like this:

  select json '{}' @* 'lax $[0]';
! WARNING:  unknown jsonb value type: 20938064
! server closed the connection unexpectedly
!       This probably means the server terminated abnormally
!       before or while processing the request.
! connection to server was lost

The backtrace is attached. My guess is JsonValueListGetList in
jsonb_jsonpath_query only does shallow copy instead of copying the
pieces into funcctx->multi_call_memory_ctx, so it gets corrupted on
subsequent calls.

I also attach valgrind report, but I suppose the reported issues are a
consequence of the same bug.

regard

-- 
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
(gdb) bt
#0  0x00007aa8bd7ddeab in raise () from /lib64/libc.so.6
#1  0x00007aa8bd7c85b9 in abort () from /lib64/libc.so.6
#2  0x0000000000a34154 in ExceptionalCondition (conditionName=0xc6d888 "!(0)", 
errorType=0xc6ce18 "FailedAssertion", fileName=0xc6caa0 "json.c", 
lineNumber=3047) at assert.c:54
#3  0x00000000009415e7 in JsonEncodeJsonbValue (buf=0x7ffca408b870, 
jbv=0x7ffca408b830) at json.c:3047
#4  0x00000000009416a4 in JsonbValueToJson (jbv=0x7ffca408b830) at json.c:3077
#5  0x000000000096707c in jsonb_jsonpath_query (fcinfo=0x13f4cf0) at 
jsonpath_exec.c:2735
#6  0x00000000009670bb in json_jsonpath_query2 (fcinfo=0x13f4cf0) at 
jsonpath_exec.c:2741
#7  0x00000000006e1c18 in ExecMakeFunctionResultSet (fcache=0x13f4c80, 
econtext=0x13f41b8, argContext=0x13f5d40, isNull=0x13f4be0, isDone=0x13f4c60) 
at execSRF.c:604
#8  0x000000000070d858 in ExecProjectSRF (node=0x13f40a0, continuing=false) at 
nodeProjectSet.c:175
#9  0x000000000070d715 in ExecProjectSet (pstate=0x13f40a0) at 
nodeProjectSet.c:105
#10 0x00000000006dee78 in ExecProcNodeFirst (node=0x13f40a0) at 
execProcnode.c:445
#11 0x00000000006d3e56 in ExecProcNode (node=0x13f40a0) at 
../../../src/include/executor/executor.h:237
#12 0x00000000006d66fa in ExecutePlan (estate=0x13f3e48, planstate=0x13f40a0, 
use_parallel_mode=false, operation=CMD_SELECT, sendTuples=true, numberTuples=0, 
direction=ForwardScanDirection, dest=0x13fa1b0, execute_once=true) at 
execMain.c:1707
#13 0x00000000006d447d in standard_ExecutorRun (queryDesc=0x1353768, 
direction=ForwardScanDirection, count=0, execute_once=true) at execMain.c:364
#14 0x00000000006d42ab in ExecutorRun (queryDesc=0x1353768, 
direction=ForwardScanDirection, count=0, execute_once=true) at execMain.c:307
#15 0x00000000008be5ff in PortalRunSelect (portal=0x1397348, forward=true, 
count=0, dest=0x13fa1b0) at pquery.c:932
#16 0x00000000008be2a4 in PortalRun (portal=0x1397348, 
count=9223372036854775807, isTopLevel=true, run_once=true, dest=0x13fa1b0, 
altdest=0x13fa1b0, completionTag=0x7ffca408be70 "") at pquery.c:773
#17 0x00000000008b8271 in exec_simple_query (query_string=0x1330738 "select 
json '{}' @* 'lax $[0]';") at postgres.c:1215
#18 0x00000000008bc580 in PostgresMain (argc=1, argv=0x135bab0, 
dbname=0x135b820 "regression", username=0x132d028 "user") at postgres.c:4243
#19 0x0000000000819f7a in BackendRun (port=0x1354940) at postmaster.c:4377
#20 0x0000000000819748 in BackendStartup (port=0x1354940) at postmaster.c:4068
#21 0x0000000000815c60 in ServerLoop () at postmaster.c:1700
#22 0x000000000081550c in PostmasterMain (argc=8, argv=0x132aeb0) at 
postmaster.c:1373
#23 0x000000000073ebba in main (argc=8, argv=0x132aeb0) at main.c:228
(gdb) up
#4  0x00000000009416a4 in JsonbValueToJson (jbv=0x7ffca408b830) at json.c:3077
3077            JsonEncodeJsonbValue(&buf, jbv);
(gdb) print *jbv
$1 = {type = 20938064, val = {numeric = 0x7ffca408b870, boolean = 112, string = 
{len = -1542932368, val = 0x0}, array = {nElems = -1542932368, elems = 0x0, 
rawScalar = 16}, object = {nPairs = -1542932368, uniquified = 252, pairs = 
0x0}, binary = {len = -1542932368, data = 0x0}, datetime = {
      value = 140723060521072, typid = 0, typmod = 0, tz = 4684816}}}
(gdb) up
#5  0x000000000096707c in jsonb_jsonpath_query (fcinfo=0x13f4cf0) at 
jsonpath_exec.c:2735
2735            SRF_RETURN_NEXT(funcctx, JsonbPGetDatum(JsonbValueToJsonb(v)));
(gdb) print *v
$2 = {type = 20938064, val = {numeric = 0x7ffca408b870, boolean = 112, string = 
{len = -1542932368, val = 0x0}, array = {nElems = -1542932368, elems = 0x0, 
rawScalar = 16}, object = {nPairs = -1542932368, uniquified = 252, pairs = 
0x0}, binary = {len = -1542932368, data = 0x0}, datetime = {
      value = 140723060521072, typid = 0, typmod = 0, tz = 4684816}}}
(gdb) bt full
#0  0x00007aa8bd7ddeab in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007aa8bd7c85b9 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x0000000000a34154 in ExceptionalCondition (conditionName=0xc6d888 "!(0)", 
errorType=0xc6ce18 "FailedAssertion", fileName=0xc6caa0 "json.c", 
lineNumber=3047) at assert.c:54
No locals.
#3  0x00000000009415e7 in JsonEncodeJsonbValue (buf=0x7ffca408b870, 
jbv=0x7ffca408b830) at json.c:3047
        __func__ = "JsonEncodeJsonbValue"
#4  0x00000000009416a4 in JsonbValueToJson (jbv=0x7ffca408b830) at json.c:3077
        buf = {data = 0x13f7e90 "", len = 0, maxlen = 1024, cursor = 0}
        json = 0x13f7e68
        type = 0
        size = 7634563
#5  0x000000000096707c in jsonb_jsonpath_query (fcinfo=0x13f4cf0) at 
jsonpath_exec.c:2735
        rsi = 0x7ffca408b9c0
        funcctx = 0x1352708
        found = 0x13528e0
        v = 0x7ffca408b830
        c = 0x13528b8
#6  0x00000000009670bb in json_jsonpath_query2 (fcinfo=0x13f4cf0) at 
jsonpath_exec.c:2741
No locals.
#7  0x00000000006e1c18 in ExecMakeFunctionResultSet (fcache=0x13f4c80, 
econtext=0x13f41b8, argContext=0x13f5d40, isNull=0x13f4be0, isDone=0x13f4c60) 
at execSRF.c:604
        arguments = 0x13f5970
        result = 20938064
        fcinfo = 0x13f4cf0
        fcusage = {fs = 0x0, save_f_total_time = {tv_sec = 20923840, tv_nsec = 
0}, save_total = {tv_sec = 20921648, tv_nsec = 140723060521568}, f_start = 
{tv_sec = 7398875, tv_nsec = 114}}
        rsinfo = {type = T_ReturnSetInfo, econtext = 0x13f41b8, expectedDesc = 
0x13fe1f0, allowedModes = 3, returnMode = SFRM_ValuePerCall, isDone = 
ExprMultipleResult, setResult = 0x0, setDesc = 0x0}
        callit = true
        i = 2
        __func__ = "ExecMakeFunctionResultSet"
#8  0x000000000070d858 in ExecProjectSRF (node=0x13f40a0, continuing=false) at 
nodeProjectSet.c:175
        elem = 0x13f4c80
        isdone = 0x13f4c60
        result = 0x13f4bd8
        isnull = 0x13f4be0
        resultSlot = 0x13f4b80
        econtext = 0x13f41b8
        oldcontext = 0x13f3d30
        hassrf = false
        hasresult = false
        argno = 0
#9  0x000000000070d715 in ExecProjectSet (pstate=0x13f40a0) at 
nodeProjectSet.c:105
        node = 0x13f40a0
        outerTupleSlot = 0x13f44c0
        resultSlot = 0x8bb308 <check_stack_depth+12>
        outerPlan = 0x13f42b0
        econtext = 0x13f41b8
#10 0x00000000006dee78 in ExecProcNodeFirst (node=0x13f40a0) at 
execProcnode.c:445
No locals.
#11 0x00000000006d3e56 in ExecProcNode (node=0x13f40a0) at 
../../../src/include/executor/executor.h:237
No locals.
#12 0x00000000006d66fa in ExecutePlan (estate=0x13f3e48, planstate=0x13f40a0, 
use_parallel_mode=false, operation=CMD_SELECT, sendTuples=true, numberTuples=0, 
direction=ForwardScanDirection, dest=0x13fa1b0, execute_once=true) at 
execMain.c:1707
        slot = 0x1397348
        current_tuple_count = 0
#13 0x00000000006d447d in standard_ExecutorRun (queryDesc=0x1353768, 
direction=ForwardScanDirection, count=0, execute_once=true) at execMain.c:364
        estate = 0x13f3e48
        operation = CMD_SELECT
        dest = 0x13fa1b0
        sendTuples = true
        oldcontext = 0x1353650
        __func__ = "standard_ExecutorRun"
#14 0x00000000006d42ab in ExecutorRun (queryDesc=0x1353768, 
direction=ForwardScanDirection, count=0, execute_once=true) at execMain.c:307
No locals.
#15 0x00000000008be5ff in PortalRunSelect (portal=0x1397348, forward=true, 
count=0, dest=0x13fa1b0) at pquery.c:932
        queryDesc = 0x1353768
        direction = ForwardScanDirection
        nprocessed = 140723060522208
        __func__ = "PortalRunSelect"
#16 0x00000000008be2a4 in PortalRun (portal=0x1397348, 
count=9223372036854775807, isTopLevel=true, run_once=true, dest=0x13fa1b0, 
altdest=0x13fa1b0, completionTag=0x7ffca408be70 "") at pquery.c:773
        save_exception_stack = 0x7ffca408bfb0
        save_context_stack = 0x0
        local_sigjmp_buf = {{__jmpbuf = {0, 3529150028062792428, 4684816, 
140723060524240, 0, 0, 3529150027981003500, -3529900415750235412}, 
__mask_was_saved = 0, __saved_mask = {__val = {128, 20121120, 64, 20264936, 
15304, 20264528, 20946272, 140723060522496, 10934220, 20553864, 112, 
---Type <return> to continue, or q <return> to quit---
                20947488, 112, 2, 20947376, 20121120}}}}
        result = false
        nprocessed = 0
        saveTopTransactionResourceOwner = 0x1362738
        saveTopTransactionContext = 0x13b43c0
        saveActivePortal = 0x0
        saveResourceOwner = 0x1362738
        savePortalContext = 0x0
        saveMemoryContext = 0x13b43c0
        __func__ = "PortalRun"
#17 0x00000000008b8271 in exec_simple_query (query_string=0x1330738 "select 
json '{}' @* 'lax $[0]';") at postgres.c:1215
        parsetree = 0x1331610
        portal = 0x1397348
        snapshot_set = true
        commandTag = 0xc5a975 "SELECT"
        completionTag = "\000\000\000\000\002\000\000\000\b\342\244", '\000' 
<repeats 13 times>, 
"P\v3\001\037\000\000\000\300\276\b\244\374\177\000\000\070\351\244\000\000\000\000\000B",
 '\000' <repeats 14 times>
        querytree_list = 0x13f24c8
        plantree_list = 0x13fa178
        receiver = 0x13fa1b0
        format = 0
        dest = DestRemote
        oldcontext = 0x13b43c0
        parsetree_list = 0x1331670
        parsetree_item = 0x1331648
        save_log_statement_stats = false
        was_logged = false
        use_implicit_block = false
        msec_str = 
"\000\277\b\244\374\177\000\000\022\270\244\000\000\000\000\000\006\000\000\000\037\000\000\000\070\a3\001\000\000\000"
        __func__ = "exec_simple_query"
#18 0x00000000008bc580 in PostgresMain (argc=1, argv=0x135bab0, 
dbname=0x135b820 "regression", username=0x132d028 "user") at postgres.c:4243
        query_string = 0x1330738 "select json '{}' @* 'lax $[0]';"
        firstchar = 81
        input_message = {data = 0x1330738 "select json '{}' @* 'lax $[0]';", 
len = 32, maxlen = 1024, cursor = 32}
        local_sigjmp_buf = {{__jmpbuf = {0, 3529150027347663596, 4684816, 
140723060524240, 0, 0, 3529150028098444012, -3529900414674527508}, 
__mask_was_saved = 1, __saved_mask = {__val = {0, 20126752, 1024, 20121120, 0, 
0, 10888111, 1024, 20126776, 140723060523136, 10892266, 20126776, 
                20121120, 30084897848, 20126776, 20126752}}}}
        send_ready_for_query = false
        disable_idle_in_transaction_timeout = false
        __func__ = "PostgresMain"
#19 0x0000000000819f7a in BackendRun (port=0x1354940) at postmaster.c:4377
        av = 0x135bab0
        maxac = 2
        ac = 1
        i = 1
        __func__ = "BackendRun"
#20 0x0000000000819748 in BackendStartup (port=0x1354940) at postmaster.c:4068
        bn = 0x1354590
        pid = 0
        __func__ = "BackendStartup"
#21 0x0000000000815c60 in ServerLoop () at postmaster.c:1700
        port = 0x1354940
        i = 0
        rmask = {fds_bits = {16, 0 <repeats 15 times>}}
        selres = 1
        now = 1541640685
        readmask = {fds_bits = {16, 0 <repeats 15 times>}}
        nSockets = 5
        last_lockfile_recheck_time = 1541640684
        last_touch_time = 1541640684
        __func__ = "ServerLoop"
#22 0x000000000081550c in PostmasterMain (argc=8, argv=0x132aeb0) at 
postmaster.c:1373
        opt = -1
        status = 0
        userDoption = 0x134d120 
"/home/user/work/postgres/src/test/regress/./tmp_check/data"
        listen_addr_saved = false
        i = 64
        output_config_variable = 0x0
        __func__ = "PostmasterMain"
#23 0x000000000073ebba in main (argc=8, argv=0x132aeb0) at main.c:228
        do_check_root = true
==4829== Conditional jump or move depends on uninitialised value(s)
==4829==    at 0x941E53: JsonbValueToJson (json.c:3063)
==4829==    by 0x9678BA: jsonb_jsonpath_query (jsonpath_exec.c:2735)
==4829==    by 0x9678F9: json_jsonpath_query2 (jsonpath_exec.c:2741)
==4829==    by 0x6E1F4E: ExecMakeFunctionResultSet (execSRF.c:604)
==4829==    by 0x70DB8E: ExecProjectSRF (nodeProjectSet.c:175)
==4829==    by 0x70DA4B: ExecProjectSet (nodeProjectSet.c:105)
==4829==    by 0x6DF1AE: ExecProcNodeFirst (execProcnode.c:445)
==4829==    by 0x6D418C: ExecProcNode (executor.h:237)
==4829==    by 0x6D6A30: ExecutePlan (execMain.c:1707)
==4829==    by 0x6D47B3: standard_ExecutorRun (execMain.c:364)
==4829==    by 0x6D45E1: ExecutorRun (execMain.c:307)
==4829==    by 0x8BEE3D: PortalRunSelect (pquery.c:932)
==4829==    by 0x8BEAE2: PortalRun (pquery.c:773)
==4829==    by 0x8B8AAF: exec_simple_query (postgres.c:1215)
==4829==    by 0x8BCDBE: PostgresMain (postgres.c:4243)
==4829==    by 0x81A2B0: BackendRun (postmaster.c:4377)
==4829==    by 0x819A7E: BackendStartup (postmaster.c:4068)
==4829==    by 0x815F96: ServerLoop (postmaster.c:1700)
==4829==    by 0x815842: PostmasterMain (postmaster.c:1373)
==4829==    by 0x73EEF0: main (main.c:228)
==4829==  Uninitialised value was created by a stack allocation
==4829==    at 0x941E46: JsonbValueToJson (json.c:3059)
==4829== 
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:JsonbValueToJson
   fun:jsonb_jsonpath_query
   fun:json_jsonpath_query2
   fun:ExecMakeFunctionResultSet
   fun:ExecProjectSRF
   fun:ExecProjectSet
   fun:ExecProcNodeFirst
   fun:ExecProcNode
   fun:ExecutePlan
   fun:standard_ExecutorRun
   fun:ExecutorRun
   fun:PortalRunSelect
   fun:PortalRun
   fun:exec_simple_query
   fun:PostgresMain
   fun:BackendRun
   fun:BackendStartup
   fun:ServerLoop
   fun:PostmasterMain
   fun:main
}
==4829== Conditional jump or move depends on uninitialised value(s)
==4829==    at 0x941A7C: JsonEncodeJsonbValue (json.c:2951)
==4829==    by 0x941EE2: JsonbValueToJson (json.c:3077)
==4829==    by 0x9678BA: jsonb_jsonpath_query (jsonpath_exec.c:2735)
==4829==    by 0x9678F9: json_jsonpath_query2 (jsonpath_exec.c:2741)
==4829==    by 0x6E1F4E: ExecMakeFunctionResultSet (execSRF.c:604)
==4829==    by 0x70DB8E: ExecProjectSRF (nodeProjectSet.c:175)
==4829==    by 0x70DA4B: ExecProjectSet (nodeProjectSet.c:105)
==4829==    by 0x6DF1AE: ExecProcNodeFirst (execProcnode.c:445)
==4829==    by 0x6D418C: ExecProcNode (executor.h:237)
==4829==    by 0x6D6A30: ExecutePlan (execMain.c:1707)
==4829==    by 0x6D47B3: standard_ExecutorRun (execMain.c:364)
==4829==    by 0x6D45E1: ExecutorRun (execMain.c:307)
==4829==    by 0x8BEE3D: PortalRunSelect (pquery.c:932)
==4829==    by 0x8BEAE2: PortalRun (pquery.c:773)
==4829==    by 0x8B8AAF: exec_simple_query (postgres.c:1215)
==4829==    by 0x8BCDBE: PostgresMain (postgres.c:4243)
==4829==    by 0x81A2B0: BackendRun (postmaster.c:4377)
==4829==    by 0x819A7E: BackendStartup (postmaster.c:4068)
==4829==    by 0x815F96: ServerLoop (postmaster.c:1700)
==4829==    by 0x815842: PostmasterMain (postmaster.c:1373)
==4829==  Uninitialised value was created by a stack allocation
==4829==    at 0x941A52: JsonEncodeJsonbValue (json.c:2948)
==4829== 
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:JsonEncodeJsonbValue
   fun:JsonbValueToJson
   fun:jsonb_jsonpath_query
   fun:json_jsonpath_query2
   fun:ExecMakeFunctionResultSet
   fun:ExecProjectSRF
   fun:ExecProjectSet
   fun:ExecProcNodeFirst
   fun:ExecProcNode
   fun:ExecutePlan
   fun:standard_ExecutorRun
   fun:ExecutorRun
   fun:PortalRunSelect
   fun:PortalRun
   fun:exec_simple_query
   fun:PostgresMain
   fun:BackendRun
   fun:BackendStartup
   fun:ServerLoop
   fun:PostmasterMain
}
==4829== Conditional jump or move depends on uninitialised value(s)
==4829==    at 0xA9BEF7: adjust_sign (snprintf.c:1436)
==4829==    by 0xA9B533: fmtint (snprintf.c:1050)
==4829==    by 0xA9A70C: dopr (snprintf.c:614)
==4829==    by 0xA99C28: pg_vsnprintf (snprintf.c:195)
==4829==    by 0xAA0C48: pvsnprintf (psprintf.c:110)
==4829==    by 0x72ACBB: appendStringInfoVA (stringinfo.c:136)
==4829==    by 0xA379E0: elog_finish (elog.c:1359)
==4829==    by 0x941E0C: JsonEncodeJsonbValue (json.c:3046)
==4829==    by 0x941EE2: JsonbValueToJson (json.c:3077)
==4829==    by 0x9678BA: jsonb_jsonpath_query (jsonpath_exec.c:2735)
==4829==    by 0x9678F9: json_jsonpath_query2 (jsonpath_exec.c:2741)
==4829==    by 0x6E1F4E: ExecMakeFunctionResultSet (execSRF.c:604)
==4829==    by 0x70DB8E: ExecProjectSRF (nodeProjectSet.c:175)
==4829==    by 0x70DA4B: ExecProjectSet (nodeProjectSet.c:105)
==4829==    by 0x6DF1AE: ExecProcNodeFirst (execProcnode.c:445)
==4829==    by 0x6D418C: ExecProcNode (executor.h:237)
==4829==    by 0x6D6A30: ExecutePlan (execMain.c:1707)
==4829==    by 0x6D47B3: standard_ExecutorRun (execMain.c:364)
==4829==    by 0x6D45E1: ExecutorRun (execMain.c:307)
==4829==    by 0x8BEE3D: PortalRunSelect (pquery.c:932)
==4829==  Uninitialised value was created by a stack allocation
==4829==    at 0x941A52: JsonEncodeJsonbValue (json.c:2948)
==4829== 
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:adjust_sign
   fun:fmtint
   fun:dopr
   fun:pg_vsnprintf
   fun:pvsnprintf
   fun:appendStringInfoVA
   fun:elog_finish
   fun:JsonEncodeJsonbValue
   fun:JsonbValueToJson
   fun:jsonb_jsonpath_query
   fun:json_jsonpath_query2
   fun:ExecMakeFunctionResultSet
   fun:ExecProjectSRF
   fun:ExecProjectSet
   fun:ExecProcNodeFirst
   fun:ExecProcNode
   fun:ExecutePlan
   fun:standard_ExecutorRun
   fun:ExecutorRun
   fun:PortalRunSelect
}
==4829== Conditional jump or move depends on uninitialised value(s)
==4829==    at 0xA9B55B: fmtint (snprintf.c:1059)
==4829==    by 0xA9A70C: dopr (snprintf.c:614)
==4829==    by 0xA99C28: pg_vsnprintf (snprintf.c:195)
==4829==    by 0xAA0C48: pvsnprintf (psprintf.c:110)
==4829==    by 0x72ACBB: appendStringInfoVA (stringinfo.c:136)
==4829==    by 0xA379E0: elog_finish (elog.c:1359)
==4829==    by 0x941E0C: JsonEncodeJsonbValue (json.c:3046)
==4829==    by 0x941EE2: JsonbValueToJson (json.c:3077)
==4829==    by 0x9678BA: jsonb_jsonpath_query (jsonpath_exec.c:2735)
==4829==    by 0x9678F9: json_jsonpath_query2 (jsonpath_exec.c:2741)
==4829==    by 0x6E1F4E: ExecMakeFunctionResultSet (execSRF.c:604)
==4829==    by 0x70DB8E: ExecProjectSRF (nodeProjectSet.c:175)
==4829==    by 0x70DA4B: ExecProjectSet (nodeProjectSet.c:105)
==4829==    by 0x6DF1AE: ExecProcNodeFirst (execProcnode.c:445)
==4829==    by 0x6D418C: ExecProcNode (executor.h:237)
==4829==    by 0x6D6A30: ExecutePlan (execMain.c:1707)
==4829==    by 0x6D47B3: standard_ExecutorRun (execMain.c:364)
==4829==    by 0x6D45E1: ExecutorRun (execMain.c:307)
==4829==    by 0x8BEE3D: PortalRunSelect (pquery.c:932)
==4829==    by 0x8BEAE2: PortalRun (pquery.c:773)
==4829==  Uninitialised value was created by a stack allocation
==4829==    at 0x941A52: JsonEncodeJsonbValue (json.c:2948)
==4829== 
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:fmtint
   fun:dopr
   fun:pg_vsnprintf
   fun:pvsnprintf
   fun:appendStringInfoVA
   fun:elog_finish
   fun:JsonEncodeJsonbValue
   fun:JsonbValueToJson
   fun:jsonb_jsonpath_query
   fun:json_jsonpath_query2
   fun:ExecMakeFunctionResultSet
   fun:ExecProjectSRF
   fun:ExecProjectSet
   fun:ExecProcNodeFirst
   fun:ExecProcNode
   fun:ExecutePlan
   fun:standard_ExecutorRun
   fun:ExecutorRun
   fun:PortalRunSelect
   fun:PortalRun
}
==4829== Use of uninitialised value of size 8
==4829==    at 0xA9B59B: fmtint (snprintf.c:1066)
==4829==    by 0xA9A70C: dopr (snprintf.c:614)
==4829==    by 0xA99C28: pg_vsnprintf (snprintf.c:195)
==4829==    by 0xAA0C48: pvsnprintf (psprintf.c:110)
==4829==    by 0x72ACBB: appendStringInfoVA (stringinfo.c:136)
==4829==    by 0xA379E0: elog_finish (elog.c:1359)
==4829==    by 0x941E0C: JsonEncodeJsonbValue (json.c:3046)
==4829==    by 0x941EE2: JsonbValueToJson (json.c:3077)
==4829==    by 0x9678BA: jsonb_jsonpath_query (jsonpath_exec.c:2735)
==4829==    by 0x9678F9: json_jsonpath_query2 (jsonpath_exec.c:2741)
==4829==    by 0x6E1F4E: ExecMakeFunctionResultSet (execSRF.c:604)
==4829==    by 0x70DB8E: ExecProjectSRF (nodeProjectSet.c:175)
==4829==    by 0x70DA4B: ExecProjectSet (nodeProjectSet.c:105)
==4829==    by 0x6DF1AE: ExecProcNodeFirst (execProcnode.c:445)
==4829==    by 0x6D418C: ExecProcNode (executor.h:237)
==4829==    by 0x6D6A30: ExecutePlan (execMain.c:1707)
==4829==    by 0x6D47B3: standard_ExecutorRun (execMain.c:364)
==4829==    by 0x6D45E1: ExecutorRun (execMain.c:307)
==4829==    by 0x8BEE3D: PortalRunSelect (pquery.c:932)
==4829==    by 0x8BEAE2: PortalRun (pquery.c:773)
==4829==  Uninitialised value was created by a stack allocation
==4829==    at 0x941A52: JsonEncodeJsonbValue (json.c:2948)
==4829== 
{
   <insert_a_suppression_name_here>
   Memcheck:Value8
   fun:fmtint
   fun:dopr
   fun:pg_vsnprintf
   fun:pvsnprintf
   fun:appendStringInfoVA
   fun:elog_finish
   fun:JsonEncodeJsonbValue
   fun:JsonbValueToJson
   fun:jsonb_jsonpath_query
   fun:json_jsonpath_query2
   fun:ExecMakeFunctionResultSet
   fun:ExecProjectSRF
   fun:ExecProjectSet
   fun:ExecProcNodeFirst
   fun:ExecProcNode
   fun:ExecutePlan
   fun:standard_ExecutorRun
   fun:ExecutorRun
   fun:PortalRunSelect
   fun:PortalRun
}
==4829== Conditional jump or move depends on uninitialised value(s)
==4829==    at 0xA9B5B8: fmtint (snprintf.c:1068)
==4829==    by 0xA9A70C: dopr (snprintf.c:614)
==4829==    by 0xA99C28: pg_vsnprintf (snprintf.c:195)
==4829==    by 0xAA0C48: pvsnprintf (psprintf.c:110)
==4829==    by 0x72ACBB: appendStringInfoVA (stringinfo.c:136)
==4829==    by 0xA379E0: elog_finish (elog.c:1359)
==4829==    by 0x941E0C: JsonEncodeJsonbValue (json.c:3046)
==4829==    by 0x941EE2: JsonbValueToJson (json.c:3077)
==4829==    by 0x9678BA: jsonb_jsonpath_query (jsonpath_exec.c:2735)
==4829==    by 0x9678F9: json_jsonpath_query2 (jsonpath_exec.c:2741)
==4829==    by 0x6E1F4E: ExecMakeFunctionResultSet (execSRF.c:604)
==4829==    by 0x70DB8E: ExecProjectSRF (nodeProjectSet.c:175)
==4829==    by 0x70DA4B: ExecProjectSet (nodeProjectSet.c:105)
==4829==    by 0x6DF1AE: ExecProcNodeFirst (execProcnode.c:445)
==4829==    by 0x6D418C: ExecProcNode (executor.h:237)
==4829==    by 0x6D6A30: ExecutePlan (execMain.c:1707)
==4829==    by 0x6D47B3: standard_ExecutorRun (execMain.c:364)
==4829==    by 0x6D45E1: ExecutorRun (execMain.c:307)
==4829==    by 0x8BEE3D: PortalRunSelect (pquery.c:932)
==4829==    by 0x8BEAE2: PortalRun (pquery.c:773)
==4829==  Uninitialised value was created by a stack allocation
==4829==    at 0x941A52: JsonEncodeJsonbValue (json.c:2948)
==4829== 
{
   <insert_a_suppression_name_here>
   Memcheck:Cond
   fun:fmtint
   fun:dopr
   fun:pg_vsnprintf
   fun:pvsnprintf
   fun:appendStringInfoVA
   fun:elog_finish
   fun:JsonEncodeJsonbValue
   fun:JsonbValueToJson
   fun:jsonb_jsonpath_query
   fun:json_jsonpath_query2
   fun:ExecMakeFunctionResultSet
   fun:ExecProjectSRF
   fun:ExecProjectSet
   fun:ExecProcNodeFirst
   fun:ExecProcNode
   fun:ExecutePlan
   fun:standard_ExecutorRun
   fun:ExecutorRun
   fun:PortalRunSelect
   fun:PortalRun
}

Reply via email to