Is there an existing issue for this?
- I have searched the existing issues
Current behaviour
segfault
Expected behaviour
no segfault
Steps to reproduce
- Fresh install of Ubuntu Focal
export DEBIAN_FRONTEND=noninteractive && apt update && apt install curl wget htop git vim ccache -y && git clone https://github.com/bitcoin/bitcoin.git --depth=1 ./bitcoin-core && cd bitcoin-core && apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils python3-zmq libevent-dev libboost-dev gcc-8 g++-8 -y
./autogen.sh && ./configure CC=gcc-8 CXX=g++-8 && make -j $(nproc) src/bitcoind
valgrind ./src/bitcoind
Relevant log output
0# valgrind ./src/bitcoind
1==19993== Memcheck, a memory error detector
2==19993== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
3==19993== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
4==19993== Command: ./src/bitcoind
5==19993==
6==19993== Invalid read of size 8
7==19993== at 0x1FD15F: ~vector (stl_vector.h:567)
8==19993== by 0x1FD15F: std::filesystem::__cxx11::path::~path() (fs_path.h:209)
9==19993== by 0x1FD18B: ~_Cmpt (fs_path.h:644)
10==19993== by 0x1FD18B: _Destroy<std::filesystem::__cxx11::path::_Cmpt> (stl_construct.h:98)
11==19993== by 0x1FD18B: __destroy<std::filesystem::__cxx11::path::_Cmpt*> (stl_construct.h:108)
12==19993== by 0x1FD18B: _Destroy<std::filesystem::__cxx11::path::_Cmpt*> (stl_construct.h:137)
13==19993== by 0x1FD18B: _Destroy<std::filesystem::__cxx11::path::_Cmpt*, std::filesystem::__cxx11::path::_Cmpt> (stl_construct.h:206)
14==19993== by 0x1FD18B: ~vector (stl_vector.h:567)
15==19993== by 0x1FD18B: std::filesystem::__cxx11::path::~path() (fs_path.h:209)
16==19993== by 0x1C5A7C: ~path (fs.h:30)
17==19993== by 0x1C5A7C: ArgsManager::GetConfigFilePath() const [clone .cold.494] (system.cpp:838)
18==19993== by 0x6057E0: ArgsManager::ReadConfigFiles(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool) (system.cpp:849)
19==19993== by 0x4F557F: common::InitConfig(ArgsManager&, std::function<bool (bilingual_str const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>) (init.cpp:24)
20==19993== by 0x1CC16E: AppInit (bitcoind.cpp:155)
21==19993== by 0x1CC16E: main (bitcoind.cpp:266)
22==19993== Address 0x2b is not stack'd, malloc'd or (recently) free'd
23==19993==
24==19993==
25==19993== Process terminating with default action of signal 11 (SIGSEGV): dumping core
26==19993== Access not within mapped region at address 0x2B
27==19993== at 0x1FD15F: ~vector (stl_vector.h:567)
28==19993== by 0x1FD15F: std::filesystem::__cxx11::path::~path() (fs_path.h:209)
29==19993== by 0x1FD18B: ~_Cmpt (fs_path.h:644)
30==19993== by 0x1FD18B: _Destroy<std::filesystem::__cxx11::path::_Cmpt> (stl_construct.h:98)
31==19993== by 0x1FD18B: __destroy<std::filesystem::__cxx11::path::_Cmpt*> (stl_construct.h:108)
32==19993== by 0x1FD18B: _Destroy<std::filesystem::__cxx11::path::_Cmpt*> (stl_construct.h:137)
33==19993== by 0x1FD18B: _Destroy<std::filesystem::__cxx11::path::_Cmpt*, std::filesystem::__cxx11::path::_Cmpt> (stl_construct.h:206)
34==19993== by 0x1FD18B: ~vector (stl_vector.h:567)
35==19993== by 0x1FD18B: std::filesystem::__cxx11::path::~path() (fs_path.h:209)
36==19993== by 0x1C5A7C: ~path (fs.h:30)
37==19993== by 0x1C5A7C: ArgsManager::GetConfigFilePath() const [clone .cold.494] (system.cpp:838)
38==19993== by 0x6057E0: ArgsManager::ReadConfigFiles(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool) (system.cpp:849)
39==19993== by 0x4F557F: common::InitConfig(ArgsManager&, std::function<bool (bilingual_str const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)>) (init.cpp:24)
40==19993== by 0x1CC16E: AppInit (bitcoind.cpp:155)
41==19993== by 0x1CC16E: main (bitcoind.cpp:266)
42==19993== If you believe this happened as a result of a stack
43==19993== overflow in your program's main thread (unlikely but
44==19993== possible), you can try to increase the size of the
45==19993== main thread stack using the --main-stacksize= flag.
46==19993== The main thread stack size used in this run was 8388608.
47==19993==
48==19993== HEAP SUMMARY:
49==19993== in use at exit: 122,654 bytes in 1,182 blocks
50==19993== total heap usage: 2,545 allocs, 1,363 frees, 383,342 bytes allocated
51==19993==
52==19993== LEAK SUMMARY:
53==19993== definitely lost: 0 bytes in 0 blocks
54==19993== indirectly lost: 0 bytes in 0 blocks
55==19993== possibly lost: 136 bytes in 1 blocks
56==19993== still reachable: 122,518 bytes in 1,181 blocks
57==19993== suppressed: 0 bytes in 0 blocks
58==19993== Rerun with --leak-check=full to see details of leaked memory
59==19993==
60==19993== For lists of detected and suppressed errors, rerun with: -s
61==19993== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
62Segmentation fault (core dumped)
63
64
65### How did you obtain Bitcoin Core
66
67Compiled from source
68
69### What version of Bitcoin Core are you using?
70
71current master
72
73### Operating system and version
74
75-
76
77### Machine specifications
78
79_No response_