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
==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
}

Reply via email to