BUG #15217: Valgrind - writing uninitialised byte(s) in FileWrite
| От | PG Bug reporting form |
|---|---|
| Тема | BUG #15217: Valgrind - writing uninitialised byte(s) in FileWrite |
| Дата | |
| Msg-id | 152765297018.1287.16667772151157129465@wrigleys.postgresql.org обсуждение исходный текст |
| Ответы |
Re: BUG #15217: Valgrind - writing uninitialised byte(s) in FileWrite
|
| Список | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 15217
Logged by: Alexander Lakhin
Email address: exclusion@gmail.com
PostgreSQL version: 10.4
Operating system: Ubuntu 16.04
Description:
Hello,
When running PostgreSQL (REL_10_STABLE) under valgrind I am getting the
following error messages sporadically:
==00:03:26:22.952 1623== Syscall param write(buf) points to uninitialised
byte(s)
==00:03:26:22.952 1623== at 0x4E4A4A0: __write_nocancel
(syscall-template.S:84)
==00:03:26:22.952 1623== by 0x72F0EF: FileWrite (fd.c:1773)
==00:03:26:22.952 1623== by 0x7310D1: BufFileDumpBuffer (buffile.c:324)
==00:03:26:22.952 1623== by 0x7313F1: BufFileFlush (buffile.c:466)
==00:03:26:22.952 1623== by 0x7313F1: BufFileRead (buffile.c:372)
==00:03:26:22.952 1623== by 0x894958: ltsReadBlock (logtape.c:248)
==00:03:26:22.952 1623== by 0x894A34: ltsReadFillBuffer (logtape.c:275)
==00:03:26:22.952 1623== by 0x89CB9F: mergeruns (tuplesort.c:2683)
==00:03:26:22.952 1623== by 0x89CB9F: tuplesort_performsort
(tuplesort.c:1823)
==00:03:26:22.952 1623== by 0x6414C2: ExecSort (nodeSort.c:117)
==00:03:26:22.952 1623== by 0x6296F8: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x6296F8: fetch_input_tuple (nodeAgg.c:695)
==00:03:26:22.952 1623== by 0x62BBBA: agg_retrieve_direct
(nodeAgg.c:2347)
==00:03:26:22.952 1623== by 0x62BBBA: ExecAgg (nodeAgg.c:2158)
==00:03:26:22.952 1623== by 0x638AE6: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x638AE6: gather_merge_readnext
(nodeGatherMerge.c:634)
==00:03:26:22.952 1623== by 0x638E5C: gather_merge_init
(nodeGatherMerge.c:468)
==00:03:26:22.952 1623== by 0x638E5C: gather_merge_getnext
(nodeGatherMerge.c:536)
==00:03:26:22.952 1623== by 0x638E5C: ExecGatherMerge
(nodeGatherMerge.c:250)
==00:03:26:22.952 1623== Address 0xfa8a27e is 6,350 bytes inside a block of
size 8,256 client-defined
==00:03:26:22.952 1623== at 0x88FC20: palloc (mcxt.c:872)
==00:03:26:22.952 1623== by 0x7312CF: makeBufFile (buffile.c:107)
==00:03:26:22.952 1623== by 0x7312CF: BufFileCreateTemp (buffile.c:175)
==00:03:26:22.952 1623== by 0x894B14: LogicalTapeSetCreate
(logtape.c:390)
==00:03:26:22.952 1623== by 0x89B2F2: inittapes (tuplesort.c:2410)
==00:03:26:22.952 1623== by 0x89B2F2: puttuple_common
(tuplesort.c:1622)
==00:03:26:22.952 1623== by 0x89C4CE: tuplesort_putheaptuple
(tuplesort.c:1397)
==00:03:26:22.952 1623== by 0x6414A0: ExecSort (nodeSort.c:111)
==00:03:26:22.952 1623== by 0x6296F8: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x6296F8: fetch_input_tuple (nodeAgg.c:695)
==00:03:26:22.952 1623== by 0x62BBBA: agg_retrieve_direct
(nodeAgg.c:2347)
==00:03:26:22.952 1623== by 0x62BBBA: ExecAgg (nodeAgg.c:2158)
==00:03:26:22.952 1623== by 0x638AE6: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x638AE6: gather_merge_readnext
(nodeGatherMerge.c:634)
==00:03:26:22.952 1623== by 0x638E5C: gather_merge_init
(nodeGatherMerge.c:468)
==00:03:26:22.952 1623== by 0x638E5C: gather_merge_getnext
(nodeGatherMerge.c:536)
==00:03:26:22.952 1623== by 0x638E5C: ExecGatherMerge
(nodeGatherMerge.c:250)
==00:03:26:22.952 1623== by 0x6296F8: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x6296F8: fetch_input_tuple (nodeAgg.c:695)
==00:03:26:22.952 1623== by 0x62BBBA: agg_retrieve_direct
(nodeAgg.c:2347)
==00:03:26:22.952 1623== by 0x62BBBA: ExecAgg (nodeAgg.c:2158)
==00:03:26:22.952 1623== Uninitialised value was created by a heap
allocation
==00:03:26:22.952 1623== at 0x88FC20: palloc (mcxt.c:872)
==00:03:26:22.952 1623== by 0x894DC2: LogicalTapeWrite (logtape.c:476)
==00:03:26:22.952 1623== by 0x895D81: writetup_heap (tuplesort.c:3757)
==00:03:26:22.952 1623== by 0x89AEE9: dumpbatch (tuplesort.c:3100)
==00:03:26:22.952 1623== by 0x89AEE9: dumptuples (tuplesort.c:2972)
==00:03:26:22.952 1623== by 0x89CA0B: tuplesort_performsort
(tuplesort.c:1822)
==00:03:26:22.952 1623== by 0x6414C2: ExecSort (nodeSort.c:117)
==00:03:26:22.952 1623== by 0x6296F8: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x6296F8: fetch_input_tuple (nodeAgg.c:695)
==00:03:26:22.952 1623== by 0x62BBBA: agg_retrieve_direct
(nodeAgg.c:2347)
==00:03:26:22.952 1623== by 0x62BBBA: ExecAgg (nodeAgg.c:2158)
==00:03:26:22.952 1623== by 0x638AE6: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x638AE6: gather_merge_readnext
(nodeGatherMerge.c:634)
==00:03:26:22.952 1623== by 0x638E5C: gather_merge_init
(nodeGatherMerge.c:468)
==00:03:26:22.952 1623== by 0x638E5C: gather_merge_getnext
(nodeGatherMerge.c:536)
==00:03:26:22.952 1623== by 0x638E5C: ExecGatherMerge
(nodeGatherMerge.c:250)
==00:03:26:22.952 1623== by 0x6296F8: ExecProcNode (executor.h:250)
==00:03:26:22.952 1623== by 0x6296F8: fetch_input_tuple (nodeAgg.c:695)
==00:03:26:22.952 1623== by 0x62BBBA: agg_retrieve_direct
(nodeAgg.c:2347)
==00:03:26:22.952 1623== by 0x62BBBA: ExecAgg (nodeAgg.c:2158)
==00:03:26:22.952 1623==
{
<insert_a_suppression_name_here>
Memcheck:Param
write(buf)
fun:__write_nocancel
fun:FileWrite
fun:BufFileDumpBuffer
fun:BufFileFlush
fun:BufFileRead
fun:ltsReadBlock
fun:ltsReadFillBuffer
fun:mergeruns
fun:tuplesort_performsort
fun:ExecSort
fun:ExecProcNode
fun:fetch_input_tuple
fun:agg_retrieve_direct
fun:ExecAgg
fun:ExecProcNode
fun:gather_merge_readnext
fun:gather_merge_init
fun:gather_merge_getnext
fun:ExecGatherMerge
}
Is this something that needs further investigation (and fix) or it just
looks like a false positive (and should be added to valgrind.supp)?
В списке pgsql-bugs по дате отправления: