QT Crash when using open wallet dialog #18924

issue instagibbs openend this issue on May 9, 2020
  1. instagibbs commented at 2:05 pm on May 9, 2020: member

    I’m on master, when I click File->Open Wallet I get a crash:

     0EXCEPTION: N5boost10filesystem16filesystem_errorE       
     1boost::filesystem::status: Permission denied: "/home/greg/.bitcoin/elements/database/wallet.dat"       
     2bitcoin in Runaway exception       
     3
     4[Thread 0x7fffd1adb700 (LWP 20698) exited]
     5[Thread 0x7fffda568700 (LWP 20696) exited]
     6
     7Thread 11 "b-scheduler" received signal SIGSEGV, Segmentation fault.
     8[Switching to Thread 0x7fffc4ffb700 (LWP 20703)]
     90x00007ffff4d83f3a in std::__detail::_List_node_base::_M_unhook() ()
    10   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    11(gdb) bt
    12[#0](/bitcoin-bitcoin/0/)  0x00007ffff4d83f3a in std::__detail::_List_node_base::_M_unhook() ()
    13   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    14[#1](/bitcoin-bitcoin/1/)  0x0000555555b0368e in std::__cxx11::list<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_erase(std::_List_iterator<std::function<void ()> >) (__position=
    15  {<std::_Maybe_unary_or_binary_function<void>> = {<No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7fffa2666700, _M_const_object = 0x7fffa2666700, _M_function_pointer = 0x7fffa2666700, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7fffa2666700, this adjustment 140736498478112}, _M_pod_data = "\000gf\242\377\177\000\000 \254\377\304\377\177\000"}, _M_manager = 0x0}, _M_invoker = 0x14aa0baea297fa00}, this=0x7fffc00015d8)
    16    at /usr/include/c++/7/bits/stl_list.h:1812
    17[#2](/bitcoin-bitcoin/2/)  std::__cxx11::list<std::function<void ()>, std::allocator<std::function<void ()> > >::pop_front() (
    18    this=0x7fffc00015d8) at /usr/include/c++/7/bits/stl_list.h:1104
    19[#3](/bitcoin-bitcoin/3/)  SingleThreadedSchedulerClient::ProcessQueue (this=0x7fffc00015a8) at scheduler.cpp:167
    20[#4](/bitcoin-bitcoin/4/)  0x0000555555b025fd in std::function<void ()>::operator()() const (this=0x7fffc4ffac20)
    21    at /usr/include/c++/7/bits/std_function.h:706
    22[#5](/bitcoin-bitcoin/5/)  CScheduler::serviceQueue (this=0x555556c890d0) at scheduler.cpp:63
    23[#6](/bitcoin-bitcoin/6/)  0x000055555570be61 in std::function<void ()>::operator()() const (this=0x7fffc4ffadb0)
    24    at /usr/include/c++/7/bits/std_function.h:706
    25[#7](/bitcoin-bitcoin/7/)  TraceThread<std::function<void ()> >(char const*, std::function<void ()>) (name=<optimized out>, func=...)
    26    at ./util/system.h:392
    27[#8](/bitcoin-bitcoin/8/)  0x0000555555718cc1 in std::__invoke_impl<void, void (*&)(char const*, std::function<void ()>), char const*&, std::function<void ()>&>(std::__invoke_other, void (*&)(char const*, std::function<void ()>), char const*&, std::function<void ()>&) (__f=<optimized out>) at /usr/include/c++/7/bits/invoke.h:60
    28[#9](/bitcoin-bitcoin/9/)  std::__invoke<void (*&)(char const*, std::function<void ()>), char const*&, std::function<void ()>&>(void (*&)(char const*, std::function<void ()>), char const*&, std::function<void ()>&) (__fn=<optimized out>)
    29    at /usr/include/c++/7/bits/invoke.h:95
    30[#10](/bitcoin-bitcoin/10/) std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) (__args=..., this=<optimized out>)
    31    at /usr/include/c++/7/functional:467
    32[#11](/bitcoin-bitcoin/11/) std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)>::operator()<, void>() (this=<optimized out>) at /usr/include/c++/7/functional:551
    33[#12](/bitcoin-bitcoin/12/) boost::detail::thread_data<std::_Bind<void (*(char const*, std::function<void ()>))(char const*, std::function<void ()>)> >::run() (this=0x7fffc0044270) at /usr/include/boost/thread/detail/thread.hpp:116
    34[#13](/bitcoin-bitcoin/13/) 0x00007ffff77a2bcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
    35[#14](/bitcoin-bitcoin/14/) 0x00007ffff54c46db in start_thread (arg=0x7fffc4ffb700) at pthread_create.c:463
    36[#15](/bitcoin-bitcoin/15/) 0x00007ffff445a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
    

    Looks like it’s trying to open some ancient elements wallet file(?), and crashing with permission error. I suspect it’s not supposed to do that. Backtrace isn’t super helpful and I’m not very familiar with QT. Maybe it’ll be easy to catch for those who do.

    I deleted the file and am unable to otherwise reproduce, sorry.

  2. instagibbs added the label Bug on May 9, 2020
  3. promag commented at 8:46 am on May 13, 2020: member

    The trace doesn’t help but I also don’t understand how could it crash there. Relevant code is https://github.com/bitcoin/bitcoin/blob/246e878e784584dd0d323a612007dfdafddeba42/src/scheduler.cpp#L160-L168 Looks like pop_front should alway work (?).

    Regarding the boost exception, I’ll try to reproduce.

    Related #18189.

  4. instagibbs commented at 1:13 pm on May 13, 2020: member
    closing since I am not going to be able to reproduce further and trace wasn’t useful
  5. instagibbs closed this on May 13, 2020

  6. DrahtBot locked this on Feb 15, 2022


instagibbs promag

Labels
Bug


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-09-20 22:12 UTC

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