Re: suspicious valgrind reports about radixtree/tidstore on arm64

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: suspicious valgrind reports about radixtree/tidstore on arm64
Дата
Msg-id 162580.1718831471@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: suspicious valgrind reports about radixtree/tidstore on arm64  (Tomas Vondra <tomas.vondra@enterprisedb.com>)
Ответы Re: suspicious valgrind reports about radixtree/tidstore on arm64
Список pgsql-hackers
Tomas Vondra <tomas.vondra@enterprisedb.com> writes:
> On 6/19/24 17:11, Tom Lane wrote:
>> What's the test scenario that triggers this?

> I haven't investigated that yet, I just ran "make check".

I've reproduced what looks like about the same thing on
my Pi 4 using Fedora 38: just run "make installcheck-parallel"
under valgrind, and kaboom.  Definitely needs investigation.

            regards, tom lane

==00:00:04:08.988 16548== Memcheck, a memory error detector
==00:00:04:08.988 16548== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==00:00:04:08.988 16548== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==00:00:04:08.988 16548== Command: postgres -F
==00:00:04:08.988 16548== Parent PID: 16278
==00:00:04:08.988 16548==
==00:00:04:13.280 16548== Conditional jump or move depends on uninitialised value(s)
==00:00:04:13.280 16548==    at 0x4AD2CC: local_ts_node_16_search_eq (radixtree.h:1025)
==00:00:04:13.280 16548==    by 0x4AD2CC: local_ts_node_search (radixtree.h:1057)
==00:00:04:13.280 16548==    by 0x4AF173: local_ts_get_slot_recursive (radixtree.h:1667)
==00:00:04:13.280 16548==    by 0x4AF173: local_ts_set (radixtree.h:1744)
==00:00:04:13.280 16548==    by 0x4AF173: TidStoreSetBlockOffsets (tidstore.c:427)
==00:00:04:13.280 16548==    by 0x4FCEEF: dead_items_add (vacuumlazy.c:2892)
==00:00:04:13.280 16548==    by 0x4FE5EF: lazy_scan_prune (vacuumlazy.c:1500)
==00:00:04:13.280 16548==    by 0x4FE5EF: lazy_scan_heap (vacuumlazy.c:975)
==00:00:04:13.280 16548==    by 0x4FE5EF: heap_vacuum_rel (vacuumlazy.c:497)
==00:00:04:13.280 16548==    by 0x681527: table_relation_vacuum (tableam.h:1720)
==00:00:04:13.280 16548==    by 0x681527: vacuum_rel (vacuum.c:2210)
==00:00:04:13.281 16548==    by 0x682957: vacuum (vacuum.c:622)
==00:00:04:13.281 16548==    by 0x7B7E77: autovacuum_do_vac_analyze (autovacuum.c:3100)
==00:00:04:13.281 16548==    by 0x7B7E77: do_autovacuum (autovacuum.c:2417)
==00:00:04:13.281 16548==    by 0x7B830B: AutoVacWorkerMain (autovacuum.c:1569)
==00:00:04:13.281 16548==    by 0x7BB937: postmaster_child_launch (launch_backend.c:265)
==00:00:04:13.281 16548==    by 0x7BD64F: StartChildProcess (postmaster.c:3928)
==00:00:04:13.281 16548==    by 0x7BF9FB: StartAutovacuumWorker (postmaster.c:3997)
==00:00:04:13.281 16548==    by 0x7BF9FB: process_pm_pmsignal (postmaster.c:3809)
==00:00:04:13.281 16548==    by 0x7BF9FB: ServerLoop.isra.0 (postmaster.c:1667)
==00:00:04:13.281 16548==    by 0x7C0EBF: PostmasterMain (postmaster.c:1372)
==00:00:04:13.281 16548==
==00:00:04:13.673 16548== Conditional jump or move depends on uninitialised value(s)
==00:00:04:13.673 16548==    at 0x4AD2CC: local_ts_node_16_search_eq (radixtree.h:1025)
==00:00:04:13.673 16548==    by 0x4AD2CC: local_ts_node_search (radixtree.h:1057)
==00:00:04:13.673 16548==    by 0x4AFD4F: local_ts_find (radixtree.h:1111)
==00:00:04:13.673 16548==    by 0x4AFD4F: TidStoreIsMember (tidstore.c:443)
==00:00:04:13.673 16548==    by 0x5110D7: btvacuumpage (nbtree.c:1235)
==00:00:04:13.673 16548==    by 0x51171B: btvacuumscan (nbtree.c:1023)
==00:00:04:13.673 16548==    by 0x51185B: btbulkdelete (nbtree.c:824)
==00:00:04:13.673 16548==    by 0x683D3B: vac_bulkdel_one_index (vacuum.c:2498)
==00:00:04:13.673 16548==    by 0x4FDA9B: lazy_vacuum_one_index (vacuumlazy.c:2443)
==00:00:04:13.673 16548==    by 0x4FDA9B: lazy_vacuum_all_indexes (vacuumlazy.c:2026)
==00:00:04:13.673 16548==    by 0x4FDA9B: lazy_vacuum (vacuumlazy.c:1944)
==00:00:04:13.673 16548==    by 0x4FE7F3: lazy_scan_heap (vacuumlazy.c:1050)
==00:00:04:13.674 16548==    by 0x4FE7F3: heap_vacuum_rel (vacuumlazy.c:497)
==00:00:04:13.674 16548==    by 0x681527: table_relation_vacuum (tableam.h:1720)
==00:00:04:13.674 16548==    by 0x681527: vacuum_rel (vacuum.c:2210)
==00:00:04:13.674 16548==    by 0x682957: vacuum (vacuum.c:622)
==00:00:04:13.674 16548==    by 0x7B7E77: autovacuum_do_vac_analyze (autovacuum.c:3100)
==00:00:04:13.674 16548==    by 0x7B7E77: do_autovacuum (autovacuum.c:2417)
==00:00:04:13.674 16548==    by 0x7B830B: AutoVacWorkerMain (autovacuum.c:1569)
==00:00:04:13.674 16548==
==00:00:04:13.681 16548== Conditional jump or move depends on uninitialised value(s)
==00:00:04:13.681 16548==    at 0x4AD2CC: local_ts_node_16_search_eq (radixtree.h:1025)
==00:00:04:13.681 16548==    by 0x4AD2CC: local_ts_node_search (radixtree.h:1057)
==00:00:04:13.681 16548==    by 0x4AFD4F: local_ts_find (radixtree.h:1111)
==00:00:04:13.681 16548==    by 0x4AFD4F: TidStoreIsMember (tidstore.c:443)
==00:00:04:13.681 16548==    by 0x51126B: btreevacuumposting (nbtree.c:1405)
==00:00:04:13.681 16548==    by 0x51126B: btvacuumpage (nbtree.c:1249)
==00:00:04:13.681 16548==    by 0x51171B: btvacuumscan (nbtree.c:1023)
==00:00:04:13.681 16548==    by 0x51185B: btbulkdelete (nbtree.c:824)
==00:00:04:13.681 16548==    by 0x683D3B: vac_bulkdel_one_index (vacuum.c:2498)
==00:00:04:13.681 16548==    by 0x4FDA9B: lazy_vacuum_one_index (vacuumlazy.c:2443)
==00:00:04:13.681 16548==    by 0x4FDA9B: lazy_vacuum_all_indexes (vacuumlazy.c:2026)
==00:00:04:13.681 16548==    by 0x4FDA9B: lazy_vacuum (vacuumlazy.c:1944)
==00:00:04:13.681 16548==    by 0x4FE7F3: lazy_scan_heap (vacuumlazy.c:1050)
==00:00:04:13.681 16548==    by 0x4FE7F3: heap_vacuum_rel (vacuumlazy.c:497)
==00:00:04:13.681 16548==    by 0x681527: table_relation_vacuum (tableam.h:1720)
==00:00:04:13.681 16548==    by 0x681527: vacuum_rel (vacuum.c:2210)
==00:00:04:13.681 16548==    by 0x682957: vacuum (vacuum.c:622)
==00:00:04:13.681 16548==    by 0x7B7E77: autovacuum_do_vac_analyze (autovacuum.c:3100)
==00:00:04:13.681 16548==    by 0x7B7E77: do_autovacuum (autovacuum.c:2417)
==00:00:04:13.681 16548==    by 0x7B830B: AutoVacWorkerMain (autovacuum.c:1569)
==00:00:04:13.681 16548==
==00:00:04:35.444 16548==
==00:00:04:35.445 16548== HEAP SUMMARY:
==00:00:04:35.445 16548==     in use at exit: 1,936,233 bytes in 285 blocks
==00:00:04:35.445 16548==   total heap usage: 59,846 allocs, 1,316 frees, 84,811,772 bytes allocated
==00:00:04:35.445 16548==
==00:00:04:37.660 16548== LEAK SUMMARY:
==00:00:04:37.660 16548==    definitely lost: 31,979 bytes in 234 blocks
==00:00:04:37.660 16548==    indirectly lost: 14,436 bytes in 48 blocks
==00:00:04:37.660 16548==      possibly lost: 371,045 bytes in 1,075 blocks
==00:00:04:37.660 16548==    still reachable: 586,591 bytes in 1,410 blocks
==00:00:04:37.660 16548==         suppressed: 0 bytes in 0 blocks
==00:00:04:37.660 16548== Rerun with --leak-check=full to see details of leaked memory
==00:00:04:37.660 16548==
==00:00:04:37.660 16548== Use --track-origins=yes to see where uninitialised values come from
==00:00:04:37.660 16548== For lists of detected and suppressed errors, rerun with: -s
==00:00:04:37.660 16548== ERROR SUMMARY: 7781 errors from 3 contexts (suppressed: 0 from 0)

В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Euler Taveira"
Дата:
Сообщение: Re: State of pg_createsubscriber
Следующее
От: Nathan Bossart
Дата:
Сообщение: Re: fix pg_upgrade comment