public inbox for [email protected]
help / color / mirror / Atom feedFrom: Tomas Vondra <[email protected]>
To: PostgreSQL Hackers <[email protected]>
Cc: John Naylor <[email protected]>
Cc: Masahiko Sawada <[email protected]>
Subject: suspicious valgrind reports about radixtree/tidstore on arm64
Date: Wed, 19 Jun 2024 16:34:52 +0200
Message-ID: <[email protected]> (raw)
Hi,
I tried running master under valgrind on 64-bit ARM (rpi5 running debian
12.5), and I got some suspicous reports, all related to the radixtree
code used by tidstore. I'm used to valgrind on arm sometimes reporting
harmless issues, but this seems like it might be an actual issue.
I'm attaching a snippet with a couple example reports. I can provide the
complete report, but AFAIK it's all just repetitions of these cases. If
needed, I can probably provide access to the rpi5 machine.
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachments:
[text/x-log] valgrind.102928.log (12.6K, ../[email protected]/2-valgrind.102928.log)
download | inline:
==103190== Conditional jump or move depends on uninitialised value(s)
==103190== at 0x21FAC4: local_ts_node_16_search_eq (radixtree.h:1022)
==103190== by 0x21FC0F: local_ts_node_search (radixtree.h:1057)
==103190== by 0x220E23: local_ts_get_slot_recursive (radixtree.h:1667)
==103190== by 0x221043: local_ts_set (radixtree.h:1744)
==103190== by 0x2253A7: TidStoreSetBlockOffsets (tidstore.c:427)
==103190== by 0x2912EF: dead_items_add (vacuumlazy.c:2892)
==103190== by 0x28F193: lazy_scan_prune (vacuumlazy.c:1500)
==103190== by 0x28E767: lazy_scan_heap (vacuumlazy.c:975)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== by 0x6A144F: do_autovacuum (autovacuum.c:2417)
==103190== by 0x69FEE7: AutoVacWorkerMain (autovacuum.c:1569)
==103190== by 0x6A739B: postmaster_child_launch (launch_backend.c:265)
==103190== by 0x6AE9F3: StartChildProcess (postmaster.c:3928)
==103190== by 0x6AEB63: StartAutovacuumWorker (postmaster.c:3997)
==103190== by 0x6AE7DF: process_pm_pmsignal (postmaster.c:3809)
==103190== by 0x6AA937: ServerLoop (postmaster.c:1667)
==103190== Uninitialised value was created by a heap allocation
==103190== at 0x9DAE30: MemoryContextAlloc (mcxt.c:1201)
==103190== by 0x21F7D3: local_ts_alloc_node (radixtree.h:839)
==103190== by 0x2208A3: local_ts_grow_node_4 (radixtree.h:1484)
==103190== by 0x220ADF: local_ts_node_insert (radixtree.h:1547)
==103190== by 0x220E4F: local_ts_get_slot_recursive (radixtree.h:1675)
==103190== by 0x221043: local_ts_set (radixtree.h:1744)
==103190== by 0x2253A7: TidStoreSetBlockOffsets (tidstore.c:427)
==103190== by 0x2912EF: dead_items_add (vacuumlazy.c:2892)
==103190== by 0x28F193: lazy_scan_prune (vacuumlazy.c:1500)
==103190== by 0x28E767: lazy_scan_heap (vacuumlazy.c:975)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== by 0x6A144F: do_autovacuum (autovacuum.c:2417)
==103190== by 0x69FEE7: AutoVacWorkerMain (autovacuum.c:1569)
==103190== by 0x6A739B: postmaster_child_launch (launch_backend.c:265)
==103190== by 0x6AE9F3: StartChildProcess (postmaster.c:3928)
==103190== by 0x6AEB63: StartAutovacuumWorker (postmaster.c:3997)
==103190==
{
<insert_a_suppression_name_here>
Memcheck:Cond
fun:local_ts_node_16_search_eq
fun:local_ts_node_search
fun:local_ts_get_slot_recursive
fun:local_ts_set
fun:TidStoreSetBlockOffsets
fun:dead_items_add
fun:lazy_scan_prune
fun:lazy_scan_heap
fun:heap_vacuum_rel
fun:table_relation_vacuum
fun:vacuum_rel
fun:vacuum
fun:autovacuum_do_vac_analyze
fun:do_autovacuum
fun:AutoVacWorkerMain
fun:postmaster_child_launch
fun:StartChildProcess
fun:StartAutovacuumWorker
fun:process_pm_pmsignal
fun:ServerLoop
}
==103190== Conditional jump or move depends on uninitialised value(s)
==103190== at 0x21F18C: pg_rightmost_one_pos32 (pg_bitutils.h:114)
==103190== by 0x21FACF: local_ts_node_16_search_eq (radixtree.h:1023)
==103190== by 0x21FC0F: local_ts_node_search (radixtree.h:1057)
==103190== by 0x21FD57: local_ts_find (radixtree.h:1111)
==103190== by 0x225413: TidStoreIsMember (tidstore.c:443)
==103190== by 0x4C4DBF: vac_tid_reaped (vacuum.c:2545)
==103190== by 0x2A86D7: btvacuumpage (nbtree.c:1235)
==103190== by 0x2A829B: btvacuumscan (nbtree.c:1023)
==103190== by 0x2A7F1B: btbulkdelete (nbtree.c:824)
==103190== by 0x296C73: index_bulk_delete (indexam.c:758)
==103190== by 0x4C4C63: vac_bulkdel_one_index (vacuum.c:2498)
==103190== by 0x290957: lazy_vacuum_one_index (vacuumlazy.c:2443)
==103190== by 0x28FD7B: lazy_vacuum_all_indexes (vacuumlazy.c:2026)
==103190== by 0x28FB7B: lazy_vacuum (vacuumlazy.c:1944)
==103190== by 0x28E93F: lazy_scan_heap (vacuumlazy.c:1050)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== Uninitialised value was created by a heap allocation
==103190== at 0x9DAE30: MemoryContextAlloc (mcxt.c:1201)
==103190== by 0x21F7D3: local_ts_alloc_node (radixtree.h:839)
==103190== by 0x220527: local_ts_grow_node_16 (radixtree.h:1383)
==103190== by 0x220B33: local_ts_node_insert (radixtree.h:1554)
==103190== by 0x220E4F: local_ts_get_slot_recursive (radixtree.h:1675)
==103190== by 0x221043: local_ts_set (radixtree.h:1744)
==103190== by 0x2253A7: TidStoreSetBlockOffsets (tidstore.c:427)
==103190== by 0x2912EF: dead_items_add (vacuumlazy.c:2892)
==103190== by 0x28F193: lazy_scan_prune (vacuumlazy.c:1500)
==103190== by 0x28E767: lazy_scan_heap (vacuumlazy.c:975)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== by 0x6A144F: do_autovacuum (autovacuum.c:2417)
==103190== by 0x69FEE7: AutoVacWorkerMain (autovacuum.c:1569)
==103190== by 0x6A739B: postmaster_child_launch (launch_backend.c:265)
==103190== by 0x6AE9F3: StartChildProcess (postmaster.c:3928)
==103190== by 0x6AEB63: StartAutovacuumWorker (postmaster.c:3997)
==103190==
{
<insert_a_suppression_name_here>
Memcheck:Cond
fun:pg_rightmost_one_pos32
fun:local_ts_node_16_search_eq
fun:local_ts_node_search
fun:local_ts_find
fun:TidStoreIsMember
fun:vac_tid_reaped
fun:btvacuumpage
fun:btvacuumscan
fun:btbulkdelete
fun:index_bulk_delete
fun:vac_bulkdel_one_index
fun:lazy_vacuum_one_index
fun:lazy_vacuum_all_indexes
fun:lazy_vacuum
fun:lazy_scan_heap
fun:heap_vacuum_rel
fun:table_relation_vacuum
fun:vacuum_rel
fun:vacuum
fun:autovacuum_do_vac_analyze
}
==103190== Conditional jump or move depends on uninitialised value(s)
==103190== at 0x21FD64: local_ts_find (radixtree.h:1112)
==103190== by 0x225413: TidStoreIsMember (tidstore.c:443)
==103190== by 0x4C4DBF: vac_tid_reaped (vacuum.c:2545)
==103190== by 0x2A86D7: btvacuumpage (nbtree.c:1235)
==103190== by 0x2A829B: btvacuumscan (nbtree.c:1023)
==103190== by 0x2A7F1B: btbulkdelete (nbtree.c:824)
==103190== by 0x296C73: index_bulk_delete (indexam.c:758)
==103190== by 0x4C4C63: vac_bulkdel_one_index (vacuum.c:2498)
==103190== by 0x290957: lazy_vacuum_one_index (vacuumlazy.c:2443)
==103190== by 0x28FD7B: lazy_vacuum_all_indexes (vacuumlazy.c:2026)
==103190== by 0x28FB7B: lazy_vacuum (vacuumlazy.c:1944)
==103190== by 0x28E93F: lazy_scan_heap (vacuumlazy.c:1050)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== by 0x6A144F: do_autovacuum (autovacuum.c:2417)
==103190== by 0x69FEE7: AutoVacWorkerMain (autovacuum.c:1569)
==103190== by 0x6A739B: postmaster_child_launch (launch_backend.c:265)
==103190== Uninitialised value was created by a heap allocation
==103190== at 0x9DAE30: MemoryContextAlloc (mcxt.c:1201)
==103190== by 0x21F7D3: local_ts_alloc_node (radixtree.h:839)
==103190== by 0x220527: local_ts_grow_node_16 (radixtree.h:1383)
==103190== by 0x220B33: local_ts_node_insert (radixtree.h:1554)
==103190== by 0x220E4F: local_ts_get_slot_recursive (radixtree.h:1675)
==103190== by 0x221043: local_ts_set (radixtree.h:1744)
==103190== by 0x2253A7: TidStoreSetBlockOffsets (tidstore.c:427)
==103190== by 0x2912EF: dead_items_add (vacuumlazy.c:2892)
==103190== by 0x28F193: lazy_scan_prune (vacuumlazy.c:1500)
==103190== by 0x28E767: lazy_scan_heap (vacuumlazy.c:975)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== by 0x6A144F: do_autovacuum (autovacuum.c:2417)
==103190== by 0x69FEE7: AutoVacWorkerMain (autovacuum.c:1569)
==103190== by 0x6A739B: postmaster_child_launch (launch_backend.c:265)
==103190== by 0x6AE9F3: StartChildProcess (postmaster.c:3928)
==103190== by 0x6AEB63: StartAutovacuumWorker (postmaster.c:3997)
==103190==
{
<insert_a_suppression_name_here>
Memcheck:Cond
fun:local_ts_find
fun:TidStoreIsMember
fun:vac_tid_reaped
fun:btvacuumpage
fun:btvacuumscan
fun:btbulkdelete
fun:index_bulk_delete
fun:vac_bulkdel_one_index
fun:lazy_vacuum_one_index
fun:lazy_vacuum_all_indexes
fun:lazy_vacuum
fun:lazy_scan_heap
fun:heap_vacuum_rel
fun:table_relation_vacuum
fun:vacuum_rel
fun:vacuum
fun:autovacuum_do_vac_analyze
fun:do_autovacuum
fun:AutoVacWorkerMain
fun:postmaster_child_launch
}
==103190== Conditional jump or move depends on uninitialised value(s)
==103190== at 0x225420: TidStoreIsMember (tidstore.c:446)
==103190== by 0x4C4DBF: vac_tid_reaped (vacuum.c:2545)
==103190== by 0x2A86D7: btvacuumpage (nbtree.c:1235)
==103190== by 0x2A829B: btvacuumscan (nbtree.c:1023)
==103190== by 0x2A7F1B: btbulkdelete (nbtree.c:824)
==103190== by 0x296C73: index_bulk_delete (indexam.c:758)
==103190== by 0x4C4C63: vac_bulkdel_one_index (vacuum.c:2498)
==103190== by 0x290957: lazy_vacuum_one_index (vacuumlazy.c:2443)
==103190== by 0x28FD7B: lazy_vacuum_all_indexes (vacuumlazy.c:2026)
==103190== by 0x28FB7B: lazy_vacuum (vacuumlazy.c:1944)
==103190== by 0x28E93F: lazy_scan_heap (vacuumlazy.c:1050)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== by 0x6A144F: do_autovacuum (autovacuum.c:2417)
==103190== by 0x69FEE7: AutoVacWorkerMain (autovacuum.c:1569)
==103190== by 0x6A739B: postmaster_child_launch (launch_backend.c:265)
==103190== by 0x6AE9F3: StartChildProcess (postmaster.c:3928)
==103190== Uninitialised value was created by a heap allocation
==103190== at 0x9DAE30: MemoryContextAlloc (mcxt.c:1201)
==103190== by 0x21F7D3: local_ts_alloc_node (radixtree.h:839)
==103190== by 0x220527: local_ts_grow_node_16 (radixtree.h:1383)
==103190== by 0x220B33: local_ts_node_insert (radixtree.h:1554)
==103190== by 0x220E4F: local_ts_get_slot_recursive (radixtree.h:1675)
==103190== by 0x221043: local_ts_set (radixtree.h:1744)
==103190== by 0x2253A7: TidStoreSetBlockOffsets (tidstore.c:427)
==103190== by 0x2912EF: dead_items_add (vacuumlazy.c:2892)
==103190== by 0x28F193: lazy_scan_prune (vacuumlazy.c:1500)
==103190== by 0x28E767: lazy_scan_heap (vacuumlazy.c:975)
==103190== by 0x28D8C7: heap_vacuum_rel (vacuumlazy.c:497)
==103190== by 0x4C0D2B: table_relation_vacuum (tableam.h:1720)
==103190== by 0x4C458F: vacuum_rel (vacuum.c:2210)
==103190== by 0x4C1F8B: vacuum (vacuum.c:622)
==103190== by 0x6A2877: autovacuum_do_vac_analyze (autovacuum.c:3100)
==103190== by 0x6A144F: do_autovacuum (autovacuum.c:2417)
==103190== by 0x69FEE7: AutoVacWorkerMain (autovacuum.c:1569)
==103190== by 0x6A739B: postmaster_child_launch (launch_backend.c:265)
==103190== by 0x6AE9F3: StartChildProcess (postmaster.c:3928)
==103190== by 0x6AEB63: StartAutovacuumWorker (postmaster.c:3997)
==103190==
{
<insert_a_suppression_name_here>
Memcheck:Cond
fun:TidStoreIsMember
fun:vac_tid_reaped
fun:btvacuumpage
fun:btvacuumscan
fun:btbulkdelete
fun:index_bulk_delete
fun:vac_bulkdel_one_index
fun:lazy_vacuum_one_index
fun:lazy_vacuum_all_indexes
fun:lazy_vacuum
fun:lazy_scan_heap
fun:heap_vacuum_rel
fun:table_relation_vacuum
fun:vacuum_rel
fun:vacuum
fun:autovacuum_do_vac_analyze
fun:do_autovacuum
fun:AutoVacWorkerMain
fun:postmaster_child_launch
fun:StartChildProcess
}
view thread (2+ messages)
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: suspicious valgrind reports about radixtree/tidstore on arm64
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox