btree_gist valgrind warnings about uninitialized memory

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: btree_gist valgrind warnings about uninitialized memory
Date: 2014-05-06 19:03:19
Message-ID: 20140506190319.GA555@awork2.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

I am not sure whether these are new for 9.4 but they're worth looking at
anyway:
Valgrind was run with:
--trace-children=yes --quiet \
--track-origins=yes --leak-check=no \
--read-var-info=yes \
--suppressions=/home/andres/src/postgresql/src/tools/valgrind.supp \
<postgres with options>
All seem to be due btree_bit's fault and they seem to have a common
origin. Didn't look at code.

==27401== Conditional jump or move depends on uninitialised value(s)
==27401== at 0x4C2C812: bcmp (mc_replace_strmem.c:935)
==27401== by 0x8A8533: byteacmp (varlena.c:2735)
==27401== by 0x8D70A2: DirectFunctionCall2Coll (fmgr.c:1050)
==27401== by 0x180822C6: gbt_bitcmp (btree_bit.c:68)
==27401== by 0x18079C05: gbt_vsrt_cmp (btree_utils_var.c:430)
==27401== by 0x919F66: qsort_arg (qsort_arg.c:121)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x18079E68: gbt_var_picksplit (btree_utils_var.c:484)
==27401== by 0x180825AC: gbt_bit_picksplit (btree_bit.c:180)
==27401== by 0x8D7AD3: FunctionCall2Coll (fmgr.c:1324)
==27401== by 0x497701: gistUserPicksplit (gistsplit.c:433)
==27401== Uninitialised value was created by a heap allocation
==27401== at 0x4C274A0: malloc (vg_replace_malloc.c:291)
==27401== by 0x8F8EE1: AllocSetAlloc (aset.c:853)
==27401== by 0x8FAA71: palloc (mcxt.c:677)
==27401== by 0x18078E37: gbt_var_decompress (btree_utils_var.c:42)
==27401== by 0x8D79E5: FunctionCall1Coll (fmgr.c:1298)
==27401== by 0x48E4A6: gistdentryinit (gistutil.c:549)
==27401== by 0x498217: gistSplitByKey (gistsplit.c:644)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== by 0x48A71F: gistdoinsert (gist.c:750)
==27401==
==27401== Conditional jump or move depends on uninitialised value(s)
==27401== at 0x8A853B: byteacmp (varlena.c:2736)
==27401== by 0x8D70A2: DirectFunctionCall2Coll (fmgr.c:1050)
==27401== by 0x180822C6: gbt_bitcmp (btree_bit.c:68)
==27401== by 0x18079C05: gbt_vsrt_cmp (btree_utils_var.c:430)
==27401== by 0x919F66: qsort_arg (qsort_arg.c:121)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x18079E68: gbt_var_picksplit (btree_utils_var.c:484)
==27401== by 0x180825AC: gbt_bit_picksplit (btree_bit.c:180)
==27401== by 0x8D7AD3: FunctionCall2Coll (fmgr.c:1324)
==27401== by 0x497701: gistUserPicksplit (gistsplit.c:433)
==27401== by 0x498491: gistSplitByKey (gistsplit.c:697)
==27401== Uninitialised value was created by a heap allocation
==27401== at 0x4C274A0: malloc (vg_replace_malloc.c:291)
==27401== by 0x8F8EE1: AllocSetAlloc (aset.c:853)
==27401== by 0x8FAA71: palloc (mcxt.c:677)
==27401== by 0x18078E37: gbt_var_decompress (btree_utils_var.c:42)
==27401== by 0x8D79E5: FunctionCall1Coll (fmgr.c:1298)
==27401== by 0x48E4A6: gistdentryinit (gistutil.c:549)
==27401== by 0x498217: gistSplitByKey (gistsplit.c:644)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== by 0x48A71F: gistdoinsert (gist.c:750)
==27401==
==27401== Conditional jump or move depends on uninitialised value(s)
==27401== at 0x18079C0D: gbt_vsrt_cmp (btree_utils_var.c:431)
==27401== by 0x919F66: qsort_arg (qsort_arg.c:121)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x18079E68: gbt_var_picksplit (btree_utils_var.c:484)
==27401== by 0x180825AC: gbt_bit_picksplit (btree_bit.c:180)
==27401== by 0x8D7AD3: FunctionCall2Coll (fmgr.c:1324)
==27401== by 0x497701: gistUserPicksplit (gistsplit.c:433)
==27401== by 0x498491: gistSplitByKey (gistsplit.c:697)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== Uninitialised value was created by a heap allocation
==27401== at 0x4C274A0: malloc (vg_replace_malloc.c:291)
==27401== by 0x8F8EE1: AllocSetAlloc (aset.c:853)
==27401== by 0x8FAA71: palloc (mcxt.c:677)
==27401== by 0x18078E37: gbt_var_decompress (btree_utils_var.c:42)
==27401== by 0x8D79E5: FunctionCall1Coll (fmgr.c:1298)
==27401== by 0x48E4A6: gistdentryinit (gistutil.c:549)
==27401== by 0x498217: gistSplitByKey (gistsplit.c:644)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== by 0x48A71F: gistdoinsert (gist.c:750)
==27401==
==27401== Conditional jump or move depends on uninitialised value(s)
==27401== at 0x919F69: qsort_arg (qsort_arg.c:121)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x91A531: qsort_arg (qsort_arg.c:186)
==27401== by 0x18079E68: gbt_var_picksplit (btree_utils_var.c:484)
==27401== by 0x180825AC: gbt_bit_picksplit (btree_bit.c:180)
==27401== by 0x8D7AD3: FunctionCall2Coll (fmgr.c:1324)
==27401== by 0x497701: gistUserPicksplit (gistsplit.c:433)
==27401== by 0x498491: gistSplitByKey (gistsplit.c:697)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== Uninitialised value was created by a heap allocation
==27401== at 0x4C274A0: malloc (vg_replace_malloc.c:291)
==27401== by 0x8F8EE1: AllocSetAlloc (aset.c:853)
==27401== by 0x8FAA71: palloc (mcxt.c:677)
==27401== by 0x18078E37: gbt_var_decompress (btree_utils_var.c:42)
==27401== by 0x8D79E5: FunctionCall1Coll (fmgr.c:1298)
==27401== by 0x48E4A6: gistdentryinit (gistutil.c:549)
==27401== by 0x498217: gistSplitByKey (gistsplit.c:644)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== by 0x48A71F: gistdoinsert (gist.c:750)
==27401==
==27401== Conditional jump or move depends on uninitialised value(s)
==27401== at 0x8A853B: byteacmp (varlena.c:2736)
==27401== by 0x8D70A2: DirectFunctionCall2Coll (fmgr.c:1050)
==27401== by 0x180822C6: gbt_bitcmp (btree_bit.c:68)
==27401== by 0x180794CA: gbt_var_bin_union (btree_utils_var.c:249)
==27401== by 0x18079EC2: gbt_var_picksplit (btree_utils_var.c:496)
==27401== by 0x180825AC: gbt_bit_picksplit (btree_bit.c:180)
==27401== by 0x8D7AD3: FunctionCall2Coll (fmgr.c:1324)
==27401== by 0x497701: gistUserPicksplit (gistsplit.c:433)
==27401== by 0x498491: gistSplitByKey (gistsplit.c:697)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== Uninitialised value was created by a heap allocation
==27401== at 0x4C274A0: malloc (vg_replace_malloc.c:291)
==27401== by 0x8F8EE1: AllocSetAlloc (aset.c:853)
==27401== by 0x8FAA71: palloc (mcxt.c:677)
==27401== by 0x18078E37: gbt_var_decompress (btree_utils_var.c:42)
==27401== by 0x8D79E5: FunctionCall1Coll (fmgr.c:1298)
==27401== by 0x48E4A6: gistdentryinit (gistutil.c:549)
==27401== by 0x498217: gistSplitByKey (gistsplit.c:644)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== by 0x48A71F: gistdoinsert (gist.c:750)
==27401==
==27401== Conditional jump or move depends on uninitialised value(s)
==27401== at 0x180794CD: gbt_var_bin_union (btree_utils_var.c:249)
==27401== by 0x18079EC2: gbt_var_picksplit (btree_utils_var.c:496)
==27401== by 0x180825AC: gbt_bit_picksplit (btree_bit.c:180)
==27401== by 0x8D7AD3: FunctionCall2Coll (fmgr.c:1324)
==27401== by 0x497701: gistUserPicksplit (gistsplit.c:433)
==27401== by 0x498491: gistSplitByKey (gistsplit.c:697)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== by 0x48A71F: gistdoinsert (gist.c:750)
==27401== by 0x499324: gistBuildCallback (gistbuild.c:490)
==27401== Uninitialised value was created by a heap allocation
==27401== at 0x4C274A0: malloc (vg_replace_malloc.c:291)
==27401== by 0x8F8EE1: AllocSetAlloc (aset.c:853)
==27401== by 0x8FAA71: palloc (mcxt.c:677)
==27401== by 0x18078E37: gbt_var_decompress (btree_utils_var.c:42)
==27401== by 0x8D79E5: FunctionCall1Coll (fmgr.c:1298)
==27401== by 0x48E4A6: gistdentryinit (gistutil.c:549)
==27401== by 0x498217: gistSplitByKey (gistsplit.c:644)
==27401== by 0x48BEEC: gistSplit (gist.c:1270)
==27401== by 0x48899D: gistplacetopage (gist.c:242)
==27401== by 0x48BAEE: gistinserttuples (gist.c:1134)
==27401== by 0x48BA73: gistinserttuple (gist.c:1093)
==27401== by 0x48A71F: gistdoinsert (gist.c:750)
==27401==

Greetings,

Andres Freund

--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2014-05-06 19:04:12 Re: [COMMITTERS] pgsql: pgindent run for 9.4
Previous Message Peter Eisentraut 2014-05-06 18:57:43 Re: Issue with GRANT/COMMENT ON FUNCTION with default