Closing a wallet using the fa46088440 28.x QT client segfaults #30887

issue katesalazar openend this issue on September 12, 2024
  1. katesalazar commented at 5:51 pm on September 12, 2024: contributor

    Is there an existing issue for this?

    • I have searched the existing issues

    Current behaviour

    Closing a descriptor wallet using the fa46088440 28.x QT client segfaults. Closing a descriptor wallet using the fa46088440 28.x console client works fine.

    Expected behaviour

    Not a crash.

    Steps to reproduce

    –enable-wallet –disable-shared –with-pic –no-create –no-recursion

    Relevant log output

    standard segfault line

    How did you obtain Bitcoin Core

    Compiled from source

    What version of Bitcoin Core are you using?

    28.x@fa46088440

    Operating system and version

    Debian GNU/Linux 12 (bookworm)

    Machine specifications

    x86_64 GNU/Linux

  2. maflcko commented at 5:57 pm on September 12, 2024: member

    Can you please run in gdb or valgrind or any other tool, so that more information is available?

    Alternatively, what are the full and exact steps to reproduce, including all config/settings/commands, ideally starting from a fresh install of the OS?

  3. maflcko added the label GUI on Sep 12, 2024
  4. katesalazar commented at 6:10 pm on September 12, 2024: contributor
      0$ valgrind ./src/qt/bitcoin-qt -datadir=/mnt/sdb1/chains/bitcoin/main/datadir/ -proxy=127.0.0.1:9050 -maxmempool=$((1024 * 5)) -dbcache=$((1024 * 7))
      1bash: valgrind: command not found
      2$ sudo aptitude install valgrind && valgrind ./src/qt/bitcoin-qt -datadir=/mnt/sdb1/chains/bitcoin/main/datadir/ -proxy=127.0.0.1:9050 -maxmempool=$((1024 * 5)) -dbcache=$((1024 * 7))
      3[sudo] password for administrator: 
      4The following NEW packages will be installed:
      5  libc6-dbg{a} valgrind valgrind-dbg{a} 
      6The following packages will be upgraded:
      7  libc-bin libc-dev-bin libc-devtools libc-l10n libc6 libc6-dev locales 
      87 packages upgraded, 3 newly installed, 0 to remove and 126 not upgraded.
      9Need to get 95.6 MB of archives. After unpacking 160 MB will be used.
     10Do you want to continue? [Y/n/?] Y
     11Get: 1 http://deb.debian.org/debian bookworm/main amd64 libc-devtools amd64 2.36-9+deb12u8 [53.9 kB]
     12Get: 2 http://deb.debian.org/debian bookworm/main amd64 libc6-dev amd64 2.36-9+deb12u8 [1,900 kB]
     13Get: 3 http://deb.debian.org/debian bookworm/main amd64 libc-dev-bin amd64 2.36-9+deb12u8 [46.3 kB]
     14Get: 4 http://deb.debian.org/debian bookworm/main amd64 libc6 amd64 2.36-9+deb12u8 [2,754 kB]
     15Get: 5 http://deb.debian.org/debian bookworm/main amd64 libc-bin amd64 2.36-9+deb12u8 [608 kB]
     16Get: 6 http://deb.debian.org/debian bookworm/main amd64 libc-l10n all 2.36-9+deb12u8 [674 kB]
     17Get: 7 http://deb.debian.org/debian bookworm/main amd64 locales all 2.36-9+deb12u8 [3,901 kB]
     18Get: 8 http://deb.debian.org/debian bookworm/main amd64 libc6-dbg amd64 2.36-9+deb12u8 [7,376 kB]
     19Get: 9 http://deb.debian.org/debian bookworm/main amd64 valgrind amd64 1:3.19.0-1 [14.3 MB]
     20Get: 10 http://deb.debian.org/debian bookworm/main amd64 valgrind-dbg amd64 1:3.19.0-1 [64.0 MB]
     21Fetched 95.6 MB in 3s (33.1 MB/s)        
     22Reading changelogs... Done
     23Preconfiguring packages ...
     24(Reading database ... 253385 files and directories currently installed.)
     25Preparing to unpack .../libc-devtools_2.36-9+deb12u8_amd64.deb ...
     26Unpacking libc-devtools (2.36-9+deb12u8) over (2.36-9+deb12u7) ...
     27Preparing to unpack .../libc6-dev_2.36-9+deb12u8_amd64.deb ...
     28Unpacking libc6-dev:amd64 (2.36-9+deb12u8) over (2.36-9+deb12u7) ...
     29Preparing to unpack .../libc-dev-bin_2.36-9+deb12u8_amd64.deb ...
     30Unpacking libc-dev-bin (2.36-9+deb12u8) over (2.36-9+deb12u7) ...
     31Preparing to unpack .../libc6_2.36-9+deb12u8_amd64.deb ...
     32Unpacking libc6:amd64 (2.36-9+deb12u8) over (2.36-9+deb12u7) ...
     33Setting up libc6:amd64 (2.36-9+deb12u8) ...
     34(Reading database ... 253385 files and directories currently installed.)
     35Preparing to unpack .../libc-bin_2.36-9+deb12u8_amd64.deb ...
     36Unpacking libc-bin (2.36-9+deb12u8) over (2.36-9+deb12u7) ...
     37Setting up libc-bin (2.36-9+deb12u8) ...
     38(Reading database ... 253385 files and directories currently installed.)
     39Preparing to unpack .../libc-l10n_2.36-9+deb12u8_all.deb ...
     40Unpacking libc-l10n (2.36-9+deb12u8) over (2.36-9+deb12u7) ...
     41Preparing to unpack .../locales_2.36-9+deb12u8_all.deb ...
     42Unpacking locales (2.36-9+deb12u8) over (2.36-9+deb12u7) ...
     43Selecting previously unselected package libc6-dbg:amd64.
     44Preparing to unpack .../libc6-dbg_2.36-9+deb12u8_amd64.deb ...
     45Unpacking libc6-dbg:amd64 (2.36-9+deb12u8) ...
     46Selecting previously unselected package valgrind.
     47Preparing to unpack .../valgrind_1%3a3.19.0-1_amd64.deb ...
     48Unpacking valgrind (1:3.19.0-1) ...
     49Selecting previously unselected package valgrind-dbg.
     50Preparing to unpack .../valgrind-dbg_1%3a3.19.0-1_amd64.deb ...
     51Unpacking valgrind-dbg (1:3.19.0-1) ...
     52Setting up libc-l10n (2.36-9+deb12u8) ...
     53Setting up locales (2.36-9+deb12u8) ...
     54Generating locales (this might take a while)...
     55  en_US.UTF-8... done
     56  es_ES.UTF-8... done
     57Generation complete.
     58Setting up libc6-dbg:amd64 (2.36-9+deb12u8) ...
     59Setting up libc-dev-bin (2.36-9+deb12u8) ...
     60Setting up valgrind (1:3.19.0-1) ...
     61Setting up libc-devtools (2.36-9+deb12u8) ...
     62Setting up valgrind-dbg (1:3.19.0-1) ...
     63Setting up libc6-dev:amd64 (2.36-9+deb12u8) ...
     64Processing triggers for man-db (2.11.2-2) ...
     65                                         
     66Current status: 126 (-7) upgradable.
     67==19611== Memcheck, a memory error detector
     68==19611== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
     69==19611== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
     70==19611== Command: ./src/qt/bitcoin-qt -datadir=/mnt/sdb1/chains/bitcoin/main/datadir/ -proxy=127.0.0.1:9050 -maxmempool=5120 -dbcache=7168
     71==19611== 
     72==19611== Invalid read of size 8
     73==19611==    at 0x4023AB4: strncmp (strcmp-sse2.S:162)
     74==19611==    by 0x4004B9E: is_dst (dl-load.c:216)
     75==19611==    by 0x400596E: _dl_dst_count (dl-load.c:253)
     76==19611==    by 0x4005B47: expand_dynamic_string_token (dl-load.c:395)
     77==19611==    by 0x4005CB2: fillin_rpath.isra.0 (dl-load.c:483)
     78==19611==    by 0x4005FA2: decompose_rpath (dl-load.c:654)
     79==19611==    by 0x400815B: _dl_map_object (dl-load.c:2111)
     80==19611==    by 0x4002260: openaux (dl-deps.c:64)
     81==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
     82==19611==    by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
     83==19611==    by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
     84==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
     85==19611==  Address 0x9ae58a9 is 9 bytes inside a block of size 15 alloc'd
     86==19611==    at 0x48407B4: malloc (vg_replace_malloc.c:381)
     87==19611==    by 0x402389A: malloc (rtld-malloc.h:56)
     88==19611==    by 0x402389A: strdup (strdup.c:42)
     89==19611==    by 0x4005F34: decompose_rpath (dl-load.c:629)
     90==19611==    by 0x400815B: _dl_map_object (dl-load.c:2111)
     91==19611==    by 0x4002260: openaux (dl-deps.c:64)
     92==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
     93==19611==    by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
     94==19611==    by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
     95==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
     96==19611==    by 0x400B1C5: dl_open_worker (dl-open.c:782)
     97==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
     98==19611==    by 0x400B5B7: _dl_open (dl-open.c:884)
     99==19611== 
    100==19611== Invalid read of size 8
    101==19611==    at 0x4023AB4: strncmp (strcmp-sse2.S:162)
    102==19611==    by 0x4004B9E: is_dst (dl-load.c:216)
    103==19611==    by 0x4005A0D: _dl_dst_substitute (dl-load.c:295)
    104==19611==    by 0x4005CB2: fillin_rpath.isra.0 (dl-load.c:483)
    105==19611==    by 0x4005FA2: decompose_rpath (dl-load.c:654)
    106==19611==    by 0x400815B: _dl_map_object (dl-load.c:2111)
    107==19611==    by 0x4002260: openaux (dl-deps.c:64)
    108==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
    109==19611==    by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
    110==19611==    by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
    111==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
    112==19611==    by 0x400B1C5: dl_open_worker (dl-open.c:782)
    113==19611==  Address 0x9ae58a9 is 9 bytes inside a block of size 15 alloc'd
    114==19611==    at 0x48407B4: malloc (vg_replace_malloc.c:381)
    115==19611==    by 0x402389A: malloc (rtld-malloc.h:56)
    116==19611==    by 0x402389A: strdup (strdup.c:42)
    117==19611==    by 0x4005F34: decompose_rpath (dl-load.c:629)
    118==19611==    by 0x400815B: _dl_map_object (dl-load.c:2111)
    119==19611==    by 0x4002260: openaux (dl-deps.c:64)
    120==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
    121==19611==    by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
    122==19611==    by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
    123==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
    124==19611==    by 0x400B1C5: dl_open_worker (dl-open.c:782)
    125==19611==    by 0x63A1FC9: _dl_catch_exception (dl-error-skeleton.c:208)
    126==19611==    by 0x400B5B7: _dl_open (dl-open.c:884)
    127==19611== 
    128==19611== Conditional jump or move depends on uninitialised value(s)
    129==19611==    at 0x2375DCC5: ???
    130==19611==    by 0x1B613207: ???
    131==19611== 
    132==19611== Conditional jump or move depends on uninitialised value(s)
    133==19611==    at 0x2375DBAD: ???
    134==19611==    by 0x1B613207: ???
    135==19611== 
    136==19611== Conditional jump or move depends on uninitialised value(s)
    137==19611==    at 0x2375DCC5: ???
    138==19611==    by 0x1B878577: ???
    139==19611== 
    140==19611== Conditional jump or move depends on uninitialised value(s)
    141==19611==    at 0x2375DBAD: ???
    142==19611==    by 0x1B878577: ???
    143==19611== 
    144==19611== Conditional jump or move depends on uninitialised value(s)
    145==19611==    at 0x2375DCC5: ???
    146==19611==    by 0x1BE0F357: ???
    147==19611== 
    148==19611== Conditional jump or move depends on uninitialised value(s)
    149==19611==    at 0x2375DBAD: ???
    150==19611==    by 0x1BE0F357: ???
    151==19611== 
    152==19611== Conditional jump or move depends on uninitialised value(s)
    153==19611==    at 0x2375DCC5: ???
    154==19611==    by 0x225F7597: ???
    155==19611== 
    156==19611== Conditional jump or move depends on uninitialised value(s)
    157==19611==    at 0x2375DBAD: ???
    158==19611==    by 0x225F7597: ???
    159==19611== 
    160==19611== Conditional jump or move depends on uninitialised value(s)
    161==19611==    at 0x2375DCC5: ???
    162==19611==    by 0x21E9CAD7: ???
    163==19611== 
    164==19611== Conditional jump or move depends on uninitialised value(s)
    165==19611==    at 0x2375DBAD: ???
    166==19611==    by 0x21E9CAD7: ???
    167==19611== 
    168==19611== Conditional jump or move depends on uninitialised value(s)
    169==19611==    at 0x2375DCC5: ???
    170==19611==    by 0x21BF40B7: ???
    171==19611== 
    172==19611== Conditional jump or move depends on uninitialised value(s)
    173==19611==    at 0x2375DBAD: ???
    174==19611==    by 0x21BF40B7: ???
    175==19611== 
    176==19611== Conditional jump or move depends on uninitialised value(s)
    177==19611==    at 0x2375DCC5: ???
    178==19611==    by 0x36BC40F7: ???
    179==19611== 
    180==19611== Conditional jump or move depends on uninitialised value(s)
    181==19611==    at 0x2375DBAD: ???
    182==19611==    by 0x36BC40F7: ???
    183==19611== 
    184==19611== Conditional jump or move depends on uninitialised value(s)
    185==19611==    at 0x2375DCC5: ???
    186==19611==    by 0x228F5957: ???
    187==19611== 
    188==19611== Conditional jump or move depends on uninitialised value(s)
    189==19611==    at 0x2375DBAD: ???
    190==19611==    by 0x228F5957: ???
    191==19611== 
    192==19611== Conditional jump or move depends on uninitialised value(s)
    193==19611==    at 0x2375DCC5: ???
    194==19611==    by 0x22B346E7: ???
    195==19611== 
    196==19611== Conditional jump or move depends on uninitialised value(s)
    197==19611==    at 0x2375DBAD: ???
    198==19611==    by 0x22B346E7: ???
    199==19611== 
    200==19611== Conditional jump or move depends on uninitialised value(s)
    201==19611==    at 0x2375DCC5: ???
    202==19611==    by 0x272D8457: ???
    203==19611== 
    204==19611== Conditional jump or move depends on uninitialised value(s)
    205==19611==    at 0x2375DBAD: ???
    206==19611==    by 0x272D8457: ???
    207==19611== 
    208==19611== Conditional jump or move depends on uninitialised value(s)
    209==19611==    at 0x2375DCC5: ???
    210==19611==    by 0x278C9BF7: ???
    211==19611== 
    212==19611== Conditional jump or move depends on uninitialised value(s)
    213==19611==    at 0x2375DBAD: ???
    214==19611==    by 0x278C9BF7: ???
    215==19611== 
    216==19611== Conditional jump or move depends on uninitialised value(s)
    217==19611==    at 0x2375DCC5: ???
    218==19611==    by 0x9AA47F7: ???
    219==19611== 
    220==19611== Conditional jump or move depends on uninitialised value(s)
    221==19611==    at 0x2375DBAD: ???
    222==19611==    by 0x9AA47F7: ???
    223==19611== 
    224==19611== Conditional jump or move depends on uninitialised value(s)
    225==19611==    at 0x2375DCC5: ???
    226==19611==    by 0x2237BD47: ???
    227==19611== 
    228==19611== Conditional jump or move depends on uninitialised value(s)
    229==19611==    at 0x2375DBAD: ???
    230==19611==    by 0x2237BD47: ???
    231==19611== 
    232==19611== Conditional jump or move depends on uninitialised value(s)
    233==19611==    at 0x2375DCC5: ???
    234==19611==    by 0x21DE4067: ???
    235==19611== 
    236==19611== Conditional jump or move depends on uninitialised value(s)
    237==19611==    at 0x2375DBAD: ???
    238==19611==    by 0x21DE4067: ???
    239==19611== 
    240==19611== Conditional jump or move depends on uninitialised value(s)
    241==19611==    at 0x2375DCC5: ???
    242==19611==    by 0x228A5867: ???
    243==19611== 
    244==19611== Conditional jump or move depends on uninitialised value(s)
    245==19611==    at 0x2375DBAD: ???
    246==19611==    by 0x228A5867: ???
    247==19611== 
    248==19611== Conditional jump or move depends on uninitialised value(s)
    249==19611==    at 0x2375DCC5: ???
    250==19611==    by 0x22B23517: ???
    251==19611== 
    252==19611== Conditional jump or move depends on uninitialised value(s)
    253==19611==    at 0x2375DBAD: ???
    254==19611==    by 0x22B23517: ???
    255==19611== 
    256==19611== Conditional jump or move depends on uninitialised value(s)
    257==19611==    at 0x2375DCC5: ???
    258==19611==    by 0x4EFCC517: ???
    259==19611== 
    260==19611== Conditional jump or move depends on uninitialised value(s)
    261==19611==    at 0x2375DBAD: ???
    262==19611==    by 0x4EFCC517: ???
    263==19611== 
    264==19611== Conditional jump or move depends on uninitialised value(s)
    265==19611==    at 0x2375DCC5: ???
    266==19611==    by 0x270B0707: ???
    267==19611== 
    268==19611== Conditional jump or move depends on uninitialised value(s)
    269==19611==    at 0x2375DBAD: ???
    270==19611==    by 0x270B0707: ???
    271==19611== 
    272==19611== Conditional jump or move depends on uninitialised value(s)
    273==19611==    at 0x2375DCC5: ???
    274==19611==    by 0x419E92F7: ???
    275==19611== 
    276==19611== Conditional jump or move depends on uninitialised value(s)
    277==19611==    at 0x2375DBAD: ???
    278==19611==    by 0x419E92F7: ???
    279==19611== 
    280==19611== Conditional jump or move depends on uninitialised value(s)
    281==19611==    at 0x2375DCC5: ???
    282==19611==    by 0x1BDED517: ???
    283==19611== 
    284==19611== Conditional jump or move depends on uninitialised value(s)
    285==19611==    at 0x2375DBAD: ???
    286==19611==    by 0x1BDED517: ???
    287==19611== 
    288==19611== Conditional jump or move depends on uninitialised value(s)
    289==19611==    at 0x2375DCC5: ???
    290==19611==    by 0x22871427: ???
    291==19611== 
    292==19611== Conditional jump or move depends on uninitialised value(s)
    293==19611==    at 0x2375DBAD: ???
    294==19611==    by 0x22871427: ???
    295==19611== 
    296==19611== Conditional jump or move depends on uninitialised value(s)
    297==19611==    at 0x2375DCC5: ???
    298==19611==    by 0x26B89937: ???
    299==19611== 
    300==19611== Conditional jump or move depends on uninitialised value(s)
    301==19611==    at 0x2375DBAD: ???
    302==19611==    by 0x26B89937: ???
    303==19611== 
    304==19611== Conditional jump or move depends on uninitialised value(s)
    305==19611==    at 0x2375DCC5: ???
    306==19611==    by 0x18192007: ???
    307==19611== 
    308==19611== Conditional jump or move depends on uninitialised value(s)
    309==19611==    at 0x2375DBAD: ???
    310==19611==    by 0x18192007: ???
    311==19611== 
    312==19611== Conditional jump or move depends on uninitialised value(s)
    313==19611==    at 0x2375DCC5: ???
    314==19611==    by 0x26A583E7: ???
    315==19611== 
    316==19611== Conditional jump or move depends on uninitialised value(s)
    317==19611==    at 0x2375DBAD: ???
    318==19611==    by 0x26A583E7: ???
    319==19611== 
    320==19611== Conditional jump or move depends on uninitialised value(s)
    321==19611==    at 0x2375DCC5: ???
    322==19611==    by 0x2621A2D7: ???
    323==19611== 
    324==19611== Conditional jump or move depends on uninitialised value(s)
    325==19611==    at 0x2375DBAD: ???
    326==19611==    by 0x2621A2D7: ???
    327==19611== 
    328==19611== Conditional jump or move depends on uninitialised value(s)
    329==19611==    at 0x2375DCC5: ???
    330==19611==    by 0x22725477: ???
    331==19611== 
    332==19611== Conditional jump or move depends on uninitialised value(s)
    333==19611==    at 0x2375DBAD: ???
    334==19611==    by 0x22725477: ???
    335==19611== 
    336==19611== Conditional jump or move depends on uninitialised value(s)
    337==19611==    at 0x2375DCC5: ???
    338==19611==    by 0x45DCA377: ???
    339==19611== 
    340==19611== Conditional jump or move depends on uninitialised value(s)
    341==19611==    at 0x2375DBAD: ???
    342==19611==    by 0x45DCA377: ???
    343==19611== 
    344==19611== Conditional jump or move depends on uninitialised value(s)
    345==19611==    at 0x2375DCC5: ???
    346==19611==    by 0x22355907: ???
    347==19611== 
    348==19611== Conditional jump or move depends on uninitialised value(s)
    349==19611==    at 0x2375DBAD: ???
    350==19611==    by 0x22355907: ???
    351==19611== 
    352==19611== Conditional jump or move depends on uninitialised value(s)
    353==19611==    at 0x2375DCC5: ???
    354==19611==    by 0x33592BF7: ???
    355==19611== 
    356==19611== Conditional jump or move depends on uninitialised value(s)
    357==19611==    at 0x2375DBAD: ???
    358==19611==    by 0x33592BF7: ???
    359==19611== 
    360==19611== Conditional jump or move depends on uninitialised value(s)
    361==19611==    at 0x2375DCC5: ???
    362==19611==    by 0x2384F1B7: ???
    363==19611== 
    364==19611== Conditional jump or move depends on uninitialised value(s)
    365==19611==    at 0x2375DBAD: ???
    366==19611==    by 0x2384F1B7: ???
    367==19611== 
    368==19611== Conditional jump or move depends on uninitialised value(s)
    369==19611==    at 0x2375DCC5: ???
    370==19611==    by 0x2234F387: ???
    371==19611== 
    372==19611== Conditional jump or move depends on uninitialised value(s)
    373==19611==    at 0x2375DBAD: ???
    374==19611==    by 0x2234F387: ???
    375==19611== 
    376==19611== Invalid read of size 8
    377==19611==    at 0x484A345: memmove (vg_replace_strmem.c:1382)
    378==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    379==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    380==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    381==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    382==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    383==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    384==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    385==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    386==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    387==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    388==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    389==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    390==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    391==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    392==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    393==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    394==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    395==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    396==19611==  Address 0x21c979e8 is 0 bytes after a block of size 8 alloc'd
    397==19611==    at 0x4840F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
    398==19611==    by 0x3463C9: allocate (new_allocator.h:137)
    399==19611==    by 0x3463C9: allocate (allocator.h:188)
    400==19611==    by 0x3463C9: allocate (alloc_traits.h:464)
    401==19611==    by 0x3463C9: _M_allocate (stl_vector.h:378)
    402==19611==    by 0x3463C9: _M_allocate (stl_vector.h:375)
    403==19611==    by 0x3463C9: _M_realloc_insert<WalletModel* const&> (vector.tcc:453)
    404==19611==    by 0x3463C9: push_back (stl_vector.h:1287)
    405==19611==    by 0x3463C9: WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >) (walletcontroller.cpp:144)
    406==19611==    by 0x34661F: operator() (walletcontroller.cpp:49)
    407==19611==    by 0x34661F: __invoke_impl<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:61)
    408==19611==    by 0x34661F: __invoke_r<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:111)
    409==19611==    by 0x34661F: std::_Function_handler<void (std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >), WalletController::WalletController(ClientModel&, PlatformStyle const*, QObject*)::{lambda(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >)#1}>::_M_invoke(std::_Any_data const&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >&&) (std_function.h:290)
    410==19611==    by 0x8077FE: operator() (std_function.h:591)
    411==19611==    by 0x8077FE: wallet::NotifyWalletLoaded(wallet::WalletContext&, std::shared_ptr<wallet::CWallet> const&) (wallet.cpp:224)
    412==19611==    by 0x82675A: LoadWalletInternal (wallet.cpp:296)
    413==19611==    by 0x82675A: wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (wallet.cpp:378)
    414==19611==    by 0x77A9E2: wallet::(anonymous namespace)::WalletLoaderImpl::loadWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (interfaces.cpp:625)
    415==19611==    by 0x346D6B: operator() (walletcontroller.cpp:357)
    416==19611==    by 0x346D6B: call (qobjectdefs_impl.h:146)
    417==19611==    by 0x346D6B: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
    418==19611==    by 0x346D6B: QtPrivate::QFunctorSlotObject<OpenWalletActivity::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
    419==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    420==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    421==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    422==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    423==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    424==19611== 
    425==19611== Invalid read of size 8
    426==19611==    at 0x484A35F: memmove (vg_replace_strmem.c:1382)
    427==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    428==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    429==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    430==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    431==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    432==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    433==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    434==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    435==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    436==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    437==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    438==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    439==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    440==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    441==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    442==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    443==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    444==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    445==19611==  Address 0x21c979f0 is 8 bytes after a block of size 8 alloc'd
    446==19611==    at 0x4840F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
    447==19611==    by 0x3463C9: allocate (new_allocator.h:137)
    448==19611==    by 0x3463C9: allocate (allocator.h:188)
    449==19611==    by 0x3463C9: allocate (alloc_traits.h:464)
    450==19611==    by 0x3463C9: _M_allocate (stl_vector.h:378)
    451==19611==    by 0x3463C9: _M_allocate (stl_vector.h:375)
    452==19611==    by 0x3463C9: _M_realloc_insert<WalletModel* const&> (vector.tcc:453)
    453==19611==    by 0x3463C9: push_back (stl_vector.h:1287)
    454==19611==    by 0x3463C9: WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >) (walletcontroller.cpp:144)
    455==19611==    by 0x34661F: operator() (walletcontroller.cpp:49)
    456==19611==    by 0x34661F: __invoke_impl<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:61)
    457==19611==    by 0x34661F: __invoke_r<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:111)
    458==19611==    by 0x34661F: std::_Function_handler<void (std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >), WalletController::WalletController(ClientModel&, PlatformStyle const*, QObject*)::{lambda(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >)#1}>::_M_invoke(std::_Any_data const&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >&&) (std_function.h:290)
    459==19611==    by 0x8077FE: operator() (std_function.h:591)
    460==19611==    by 0x8077FE: wallet::NotifyWalletLoaded(wallet::WalletContext&, std::shared_ptr<wallet::CWallet> const&) (wallet.cpp:224)
    461==19611==    by 0x82675A: LoadWalletInternal (wallet.cpp:296)
    462==19611==    by 0x82675A: wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (wallet.cpp:378)
    463==19611==    by 0x77A9E2: wallet::(anonymous namespace)::WalletLoaderImpl::loadWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (interfaces.cpp:625)
    464==19611==    by 0x346D6B: operator() (walletcontroller.cpp:357)
    465==19611==    by 0x346D6B: call (qobjectdefs_impl.h:146)
    466==19611==    by 0x346D6B: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
    467==19611==    by 0x346D6B: QtPrivate::QFunctorSlotObject<OpenWalletActivity::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
    468==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    469==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    470==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    471==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    472==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    473==19611== 
    474==19611== Invalid write of size 8
    475==19611==    at 0x484A363: memmove (vg_replace_strmem.c:1382)
    476==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    477==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    478==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    479==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    480==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    481==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    482==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    483==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    484==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    485==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    486==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    487==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    488==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    489==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    490==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    491==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    492==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    493==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    494==19611==  Address 0x21c979e8 is 0 bytes after a block of size 8 alloc'd
    495==19611==    at 0x4840F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
    496==19611==    by 0x3463C9: allocate (new_allocator.h:137)
    497==19611==    by 0x3463C9: allocate (allocator.h:188)
    498==19611==    by 0x3463C9: allocate (alloc_traits.h:464)
    499==19611==    by 0x3463C9: _M_allocate (stl_vector.h:378)
    500==19611==    by 0x3463C9: _M_allocate (stl_vector.h:375)
    501==19611==    by 0x3463C9: _M_realloc_insert<WalletModel* const&> (vector.tcc:453)
    502==19611==    by 0x3463C9: push_back (stl_vector.h:1287)
    503==19611==    by 0x3463C9: WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >) (walletcontroller.cpp:144)
    504==19611==    by 0x34661F: operator() (walletcontroller.cpp:49)
    505==19611==    by 0x34661F: __invoke_impl<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:61)
    506==19611==    by 0x34661F: __invoke_r<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:111)
    507==19611==    by 0x34661F: std::_Function_handler<void (std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >), WalletController::WalletController(ClientModel&, PlatformStyle const*, QObject*)::{lambda(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >)#1}>::_M_invoke(std::_Any_data const&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >&&) (std_function.h:290)
    508==19611==    by 0x8077FE: operator() (std_function.h:591)
    509==19611==    by 0x8077FE: wallet::NotifyWalletLoaded(wallet::WalletContext&, std::shared_ptr<wallet::CWallet> const&) (wallet.cpp:224)
    510==19611==    by 0x82675A: LoadWalletInternal (wallet.cpp:296)
    511==19611==    by 0x82675A: wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (wallet.cpp:378)
    512==19611==    by 0x77A9E2: wallet::(anonymous namespace)::WalletLoaderImpl::loadWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (interfaces.cpp:625)
    513==19611==    by 0x346D6B: operator() (walletcontroller.cpp:357)
    514==19611==    by 0x346D6B: call (qobjectdefs_impl.h:146)
    515==19611==    by 0x346D6B: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
    516==19611==    by 0x346D6B: QtPrivate::QFunctorSlotObject<OpenWalletActivity::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
    517==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    518==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    519==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    520==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    521==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    522==19611== 
    523==19611== Invalid read of size 8
    524==19611==    at 0x484A367: memmove (vg_replace_strmem.c:1382)
    525==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    526==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    527==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    528==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    529==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    530==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    531==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    532==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    533==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    534==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    535==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    536==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    537==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    538==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    539==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    540==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    541==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    542==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    543==19611==  Address 0x21c979f8 is 16 bytes after a block of size 8 alloc'd
    544==19611==    at 0x4840F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
    545==19611==    by 0x3463C9: allocate (new_allocator.h:137)
    546==19611==    by 0x3463C9: allocate (allocator.h:188)
    547==19611==    by 0x3463C9: allocate (alloc_traits.h:464)
    548==19611==    by 0x3463C9: _M_allocate (stl_vector.h:378)
    549==19611==    by 0x3463C9: _M_allocate (stl_vector.h:375)
    550==19611==    by 0x3463C9: _M_realloc_insert<WalletModel* const&> (vector.tcc:453)
    551==19611==    by 0x3463C9: push_back (stl_vector.h:1287)
    552==19611==    by 0x3463C9: WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >) (walletcontroller.cpp:144)
    553==19611==    by 0x34661F: operator() (walletcontroller.cpp:49)
    554==19611==    by 0x34661F: __invoke_impl<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:61)
    555==19611==    by 0x34661F: __invoke_r<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:111)
    556==19611==    by 0x34661F: std::_Function_handler<void (std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >), WalletController::WalletController(ClientModel&, PlatformStyle const*, QObject*)::{lambda(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >)#1}>::_M_invoke(std::_Any_data const&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >&&) (std_function.h:290)
    557==19611==    by 0x8077FE: operator() (std_function.h:591)
    558==19611==    by 0x8077FE: wallet::NotifyWalletLoaded(wallet::WalletContext&, std::shared_ptr<wallet::CWallet> const&) (wallet.cpp:224)
    559==19611==    by 0x82675A: LoadWalletInternal (wallet.cpp:296)
    560==19611==    by 0x82675A: wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (wallet.cpp:378)
    561==19611==    by 0x77A9E2: wallet::(anonymous namespace)::WalletLoaderImpl::loadWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (interfaces.cpp:625)
    562==19611==    by 0x346D6B: operator() (walletcontroller.cpp:357)
    563==19611==    by 0x346D6B: call (qobjectdefs_impl.h:146)
    564==19611==    by 0x346D6B: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
    565==19611==    by 0x346D6B: QtPrivate::QFunctorSlotObject<OpenWalletActivity::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
    566==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    567==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    568==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    569==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    570==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    571==19611== 
    572==19611== Invalid write of size 8
    573==19611==    at 0x484A36B: memmove (vg_replace_strmem.c:1382)
    574==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    575==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    576==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    577==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    578==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    579==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    580==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    581==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    582==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    583==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    584==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    585==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    586==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    587==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    588==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    589==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    590==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    591==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    592==19611==  Address 0x21c979f0 is 8 bytes after a block of size 8 alloc'd
    593==19611==    at 0x4840F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
    594==19611==    by 0x3463C9: allocate (new_allocator.h:137)
    595==19611==    by 0x3463C9: allocate (allocator.h:188)
    596==19611==    by 0x3463C9: allocate (alloc_traits.h:464)
    597==19611==    by 0x3463C9: _M_allocate (stl_vector.h:378)
    598==19611==    by 0x3463C9: _M_allocate (stl_vector.h:375)
    599==19611==    by 0x3463C9: _M_realloc_insert<WalletModel* const&> (vector.tcc:453)
    600==19611==    by 0x3463C9: push_back (stl_vector.h:1287)
    601==19611==    by 0x3463C9: WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >) (walletcontroller.cpp:144)
    602==19611==    by 0x34661F: operator() (walletcontroller.cpp:49)
    603==19611==    by 0x34661F: __invoke_impl<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:61)
    604==19611==    by 0x34661F: __invoke_r<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:111)
    605==19611==    by 0x34661F: std::_Function_handler<void (std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >), WalletController::WalletController(ClientModel&, PlatformStyle const*, QObject*)::{lambda(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >)#1}>::_M_invoke(std::_Any_data const&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >&&) (std_function.h:290)
    606==19611==    by 0x8077FE: operator() (std_function.h:591)
    607==19611==    by 0x8077FE: wallet::NotifyWalletLoaded(wallet::WalletContext&, std::shared_ptr<wallet::CWallet> const&) (wallet.cpp:224)
    608==19611==    by 0x82675A: LoadWalletInternal (wallet.cpp:296)
    609==19611==    by 0x82675A: wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (wallet.cpp:378)
    610==19611==    by 0x77A9E2: wallet::(anonymous namespace)::WalletLoaderImpl::loadWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (interfaces.cpp:625)
    611==19611==    by 0x346D6B: operator() (walletcontroller.cpp:357)
    612==19611==    by 0x346D6B: call (qobjectdefs_impl.h:146)
    613==19611==    by 0x346D6B: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
    614==19611==    by 0x346D6B: QtPrivate::QFunctorSlotObject<OpenWalletActivity::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
    615==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    616==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    617==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    618==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    619==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    620==19611== 
    621==19611== Invalid read of size 8
    622==19611==    at 0x484A36F: memmove (vg_replace_strmem.c:1382)
    623==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    624==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    625==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    626==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    627==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    628==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    629==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    630==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    631==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    632==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    633==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    634==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    635==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    636==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    637==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    638==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    639==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    640==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    641==19611==  Address 0x21c97a00 is 16 bytes after a block of size 16 in arena "client"
    642==19611== 
    643==19611== Invalid write of size 8
    644==19611==    at 0x484A373: memmove (vg_replace_strmem.c:1382)
    645==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    646==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    647==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    648==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    649==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    650==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    651==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    652==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    653==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    654==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    655==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    656==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    657==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    658==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    659==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    660==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    661==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    662==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    663==19611==  Address 0x21c979f8 is 16 bytes after a block of size 8 alloc'd
    664==19611==    at 0x4840F2F: operator new(unsigned long) (vg_replace_malloc.c:422)
    665==19611==    by 0x3463C9: allocate (new_allocator.h:137)
    666==19611==    by 0x3463C9: allocate (allocator.h:188)
    667==19611==    by 0x3463C9: allocate (alloc_traits.h:464)
    668==19611==    by 0x3463C9: _M_allocate (stl_vector.h:378)
    669==19611==    by 0x3463C9: _M_allocate (stl_vector.h:375)
    670==19611==    by 0x3463C9: _M_realloc_insert<WalletModel* const&> (vector.tcc:453)
    671==19611==    by 0x3463C9: push_back (stl_vector.h:1287)
    672==19611==    by 0x3463C9: WalletController::getOrCreateWallet(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >) (walletcontroller.cpp:144)
    673==19611==    by 0x34661F: operator() (walletcontroller.cpp:49)
    674==19611==    by 0x34661F: __invoke_impl<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:61)
    675==19611==    by 0x34661F: __invoke_r<void, WalletController::WalletController(ClientModel&, const PlatformStyle*, QObject*)::<lambda(std::unique_ptr<interfaces::Wallet>)>&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> > > (invoke.h:111)
    676==19611==    by 0x34661F: std::_Function_handler<void (std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >), WalletController::WalletController(ClientModel&, PlatformStyle const*, QObject*)::{lambda(std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >)#1}>::_M_invoke(std::_Any_data const&, std::unique_ptr<interfaces::Wallet, std::default_delete<interfaces::Wallet> >&&) (std_function.h:290)
    677==19611==    by 0x8077FE: operator() (std_function.h:591)
    678==19611==    by 0x8077FE: wallet::NotifyWalletLoaded(wallet::WalletContext&, std::shared_ptr<wallet::CWallet> const&) (wallet.cpp:224)
    679==19611==    by 0x82675A: LoadWalletInternal (wallet.cpp:296)
    680==19611==    by 0x82675A: wallet::LoadWallet(wallet::WalletContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<bool>, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (wallet.cpp:378)
    681==19611==    by 0x77A9E2: wallet::(anonymous namespace)::WalletLoaderImpl::loadWallet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bilingual_str, std::allocator<bilingual_str> >&) (interfaces.cpp:625)
    682==19611==    by 0x346D6B: operator() (walletcontroller.cpp:357)
    683==19611==    by 0x346D6B: call (qobjectdefs_impl.h:146)
    684==19611==    by 0x346D6B: call<QtPrivate::List<>, void> (qobjectdefs_impl.h:256)
    685==19611==    by 0x346D6B: QtPrivate::QFunctorSlotObject<OpenWalletActivity::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:443)
    686==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    687==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    688==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    689==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    690==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    691==19611== 
    692==19611== Invalid read of size 8
    693==19611==    at 0x484A354: memmove (vg_replace_strmem.c:1382)
    694==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    695==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    696==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    697==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    698==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    699==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    700==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    701==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    702==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    703==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    704==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    705==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    706==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    707==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    708==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    709==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    710==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    711==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    712==19611==  Address 0x21c97a08 is 24 bytes after a block of size 16 in arena "client"
    713==19611== 
    714==19611== Invalid write of size 8
    715==19611==    at 0x484A35B: memmove (vg_replace_strmem.c:1382)
    716==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    717==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    718==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    719==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    720==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    721==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    722==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    723==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    724==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    725==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    726==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    727==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    728==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    729==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    730==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    731==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    732==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    733==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    734==19611==  Address 0x21c97a00 is 16 bytes after a block of size 16 in arena "client"
    735==19611== 
    736==19611== 
    737==19611== Process terminating with default action of signal 11 (SIGSEGV)
    738==19611==  Bad permissions for mapped region at address 0x22C1A000
    739==19611==    at 0x484A35B: memmove (vg_replace_strmem.c:1382)
    740==19611==    by 0x341C0A: __copy_m<WalletModel*> (stl_algobase.h:431)
    741==19611==    by 0x341C0A: __copy_move_a2<true, WalletModel**, WalletModel**> (stl_algobase.h:495)
    742==19611==    by 0x341C0A: __copy_move_a1<true, WalletModel**, WalletModel**> (stl_algobase.h:522)
    743==19611==    by 0x341C0A: __copy_move_a<true, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:529)
    744==19611==    by 0x341C0A: move<__gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> >, __gnu_cxx::__normal_iterator<WalletModel**, std::vector<WalletModel*> > > (stl_algobase.h:652)
    745==19611==    by 0x341C0A: _M_erase (vector.tcc:179)
    746==19611==    by 0x341C0A: erase (stl_vector.h:1530)
    747==19611==    by 0x341C0A: WalletController::removeAndDeleteWallet(WalletModel*) (walletcontroller.cpp:180)
    748==19611==    by 0x4CF26EF: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    749==19611==    by 0x50CAFAD: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.15.8)
    750==19611==    by 0x4CC66F7: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    751==19611==    by 0x4CC9680: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    752==19611==    by 0x4D1F152: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    753==19611==    by 0x6B837A8: g_main_context_dispatch (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    754==19611==    by 0x6B83A37: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    755==19611==    by 0x6B83ACB: g_main_context_iteration (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7400.6)
    756==19611==    by 0x4D1E835: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    757==19611==    by 0x4CC517A: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.15.8)
    758==19611== 
    759==19611== HEAP SUMMARY:
    760==19611==     in use at exit: 272,716,226 bytes in 1,222,612 blocks
    761==19611==   total heap usage: 8,635,023 allocs, 7,412,411 frees, 3,337,225,499 bytes allocated
    762==19611== 
    763==19611== LEAK SUMMARY:
    764==19611==    definitely lost: 862,500 bytes in 16,956 blocks
    765==19611==    indirectly lost: 547,976 bytes in 13,916 blocks
    766==19611==      possibly lost: 2,475,686 bytes in 10,724 blocks
    767==19611==    still reachable: 268,830,064 bytes in 1,181,016 blocks
    768==19611==                       of which reachable via heuristic:
    769==19611==                         newarray           : 520 bytes in 10 blocks
    770==19611==                         multipleinheritance: 8,080 bytes in 8 blocks
    771==19611==         suppressed: 0 bytes in 0 blocks
    772==19611== Rerun with --leak-check=full to see details of leaked memory
    773==19611== 
    774==19611== Use --track-origins=yes to see where uninitialised values come from
    775==19611== For lists of detected and suppressed errors, rerun with: -s
    776==19611== ERROR SUMMARY: 1832917 errors from 73 contexts (suppressed: 0 from 0)
    777Segmentation fault (core dumped)
    778$ 
    
  5. maflcko commented at 6:31 pm on September 12, 2024: member
    Looks like this may have been changed recently in https://github.com/bitcoin-core/gui/commit/e682e7db7e399ce888e492eab8f99c389aae05b5. However, I do not know if that change is related.
  6. hebasto added the label Wallet on Sep 12, 2024
  7. katesalazar commented at 9:03 pm on September 12, 2024: contributor
    In my environment, 5d15485a is a crashing rev and inmediate ancestor 1a41e635 is a non-crashing rev.
  8. katesalazar commented at 9:11 pm on September 12, 2024: contributor
    I came back to fa46088440, then reverted 5d15485a on top, looks like healed.
  9. furszy commented at 9:19 pm on September 12, 2024: member
    Replicated. It happens closing it through the GUI toolbar button. Not the command-line. Will investigate it.
  10. furszy commented at 9:35 pm on September 12, 2024: member
    The issue arises because we are calling removeAndDeleteWallet twice for the same wallet model. The first time inside WalletController::closeWallet and a second time when the backend emits the wallet unload signal. Preparing the PR..
  11. maflcko added this to the milestone 28.0 on Sep 12, 2024
  12. maflcko added the label Bug on Sep 12, 2024
  13. furszy commented at 10:02 pm on September 12, 2024: member
  14. hebasto closed this on Sep 13, 2024

  15. hebasto referenced this in commit e43ce250c6 on Sep 13, 2024

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-21 15:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me