bitcoin / bitcoin

Bitcoin Core integration/staging tree
https://bitcoincore.org/en/download
MIT License
79.29k stars 36.33k forks source link

avoid_reuse=true is incorrectly skipping one of my UXTOs #26317

Open dooglus opened 2 years ago

dooglus commented 2 years ago

I noticed that the sum of my unspent outputs is greater than my balance.

Upon investigating it turns out that this is because one of my outputs is marked as "used", even though it hasn't been.

Tracing through the execution I see that CWallet::IsSpentKey() is returning here:

if (IsAddressUsed(dest)) {
    return true;
}

and IsAddressUsed() is looking for key used in the address book for that address, and presumably finding it.

The address of the UTXO in question only has a single transaction, creating my UTXO. The address isn't reused, and no other address with the same public key is used either.

The UTXO was created in Feb 2020 and I've used many different versions of Bitcoin Core since then, so I don't know when or why the UTXO's address was marked as "used".

Could it be that I made a transaction that spent that UTXO but the transaction never confirmed and I later "zapped" it? Or RBF'ed it, causing different inputs to be used?

ghost commented 2 years ago

Interesting bug but I could not reproduce. Would be helpful if there was some research and steps to reproduce.

Not sure RBF does it because I tried with custom change address as well. Zap config doesn't exist anymore.

dooglus commented 2 years ago

I've been using the same wallet since 2011 so it's really hard to know when this happened.

I don't see anything in the code that ever clears the 'used' key once it is set on an address.

I was thinking that bumping the fee using RBF might occasionally drop one input for a bigger input when necessary but I see from the code that that doesn't happen:

wallet/feebumper.cpp:

// Fill in required inputs we are double-spending(all of them)
// N.B.: bip125 doesn't require all the inputs in the replaced transaction to be
// used in the replacement transaction, but it's very important for wallets to make
// sure that happens.

So I don't know. It could well be that this happened long ago due to a bug that has already been fixed. I'm just going to spend the missing UTXO back to a new address using a raw transaction and forget about it but thought it might be useful to mention here that it happened to me.

ghost commented 2 years ago

Only 3 devs can help you if RBF is involved because we cannot select inputs in core wallet afaik: @achow101 @Xekyo @luke-jr

dooglus commented 2 years ago

I think you misunderstand me. I'm not looking for help. I am reporting an issue. It is apparently rare and I can work around it by spending the hidden UTXO using the raw transaction RPCs.

willcl-ark commented 2 years ago

@dooglus how did you sum your unspent outputs, using listunspent rpc or some other way? I would be curious to learn that listunspent did not match getbalance for the wallet, as this is not something that I can see an obvious codepath for...

I did manage to re-create "losing" UTXOs from a wallet. Setting the walletbroadcast=0 flag on bitcoind and then making a transaction will result in tx hex beign returned, and the coins marked as "used". If the user does not save the transaction and broadcast it manually, the wallet will still consider the UTXO spent and require a reindex (or for a descriptor wallet can use scantxoutset). But this does not in my testing result in listunspent and getbalance getting out of sync, e.g. see this rudimentary test.

We can also see in the Miniwallet source that it is somewhat (obscurely?) known that transactions might get "lost" if the transaction was RBFed after a re-org.

dooglus commented 2 years ago

I summed the outputs listed by the listunspent RPC, yes. If I sum just the ones with "reused": false, I get the same total as getbalance shows. And if I include the ones with "reused": true then I get the full balance.

I don't remember whether I ever manually enabled the "avoid reuse" flag on my wallet, or it is it on by default, but maybe you don't have it on, and I do? Check this code in src/wallet/rpc/util.cpp:

bool GetAvoidReuseFlag(const CWallet& wallet, const UniValue& param) {

Do your "lost" UTXOs show up with "reused": true in the listunspent output?

willcl-ark commented 2 years ago

I'm not sure exactly how to check the current state of a flag on a wallet (perhaps bitcoin-wallet dump output can be interpreted), but it certainly sounds like you have that flag set to me. I did not test with that flag set and "lost" UTXOs as I described above don't show up in listunspend at all 😨

Perhaps you can force disable the wallet flag with bitcoin-cli setwalletflag avoid_reuse false and test the output of getbalance again to see if it's fixed?

dooglus commented 2 years ago

Yes, that fixes it:

$ bitcoin-cli setwalletflag avoid_reuse false
{
  "flag_name": "avoid_reuse",
  "flag_state": false
}

$ bitcoin-cli getbalance
x.1908x

$ bitcoin-cli setwalletflag avoid_reuse true
{
  "flag_name": "avoid_reuse",
  "flag_state": true,
  "warnings": "You need to rescan the blockchain in order to correctly mark used destinations in the past. Until this is done, some destinations may be considered unused, even if the opposite is the case."
}

$ bitcoin-cli getbalance
x.1808x

$

Interesting that it suggests rescanning the blockchain to fix which destinations are marked as used. Does that mean running bitcoin-cli rescanblockchain?

I tried running that on just the block that created the UTXO in question but it didn't change anything. Perhaps I have to rescan the whole chain? I didn't see any code that is capable of clearing the 'used' key for a destination, so suspect that it might not work, unless it starts off by clearing all the 'used' keys.

I'll try rescanning the whole chain and report back - it seems like it's going to take a while.

achow101 commented 2 years ago

Could it be that I made a transaction that spent that UTXO but the transaction never confirmed and I later "zapped" it? Or RBF'ed it, causing different inputs to be used?

I think that would be the only way that this could happen.

It does not look like there is a way to clear the used status of an address, although the capability is there. The "easy' way to resolve this would be to spend that UTXO. You could also attempt to modify the db directly and remove that particular record.

In terms of long term solutions, we could add a RPC that removes the record, but that seems potentially dangerous as that could work on any address that is used. We could also have a RPC to recompute the used state of each address. The question with that is whether a rescan should occur, or whether it should scan just mapWallet. Just mapWallet would be way faster, but transactions can be removed from it used removeprunedfunds.

dooglus commented 2 years ago

The rescan took over 9 hours, finished a few hours ago, and has left bitcoin-qt unresponsive. Here is the end of debug.log:

2022-10-18T23:45:39Z [chris] Rescan started from block 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f...
[...]
2022-10-19T09:09:06Z [chris] Still rescanning. At block 754795. Progress=0.990225
2022-10-19T09:09:25Z UpdateTip: new best=00000000000000000004f87fdb98d09093b040a4e56e2c720543dc926efe7ddf height=759344 version=0x20000000 log2_work=93.793742 tx=773345131 date='2022-10-19T09:09:09Z' progress=1.000000 cache=63.7MiB(473519txo)
2022-10-19T09:10:06Z [chris] Still rescanning. At block 755331. Progress=0.991511
2022-10-19T09:11:07Z [chris] Still rescanning. At block 755928. Progress=0.992890
2022-10-19T09:12:07Z [chris] Still rescanning. At block 756498. Progress=0.994084
2022-10-19T09:12:09Z [chris] AddToWallet [txid]  
2022-10-19T09:13:07Z [chris] Still rescanning. At block 757165. Progress=0.995384
2022-10-19T09:14:07Z [chris] Still rescanning. At block 757820. Progress=0.996662
2022-10-19T09:14:48Z [chris] AddToWallet [txid]  
2022-10-19T09:15:07Z [chris] Still rescanning. At block 758431. Progress=0.997985
2022-10-19T09:16:07Z [chris] Still rescanning. At block 759032. Progress=0.999291
2022-10-19T09:16:39Z [chris] Scanning current mempool transactions.
2022-10-19T09:16:39Z [chris] Rescan completed in        34260150ms

Note no new log activity since the rescan completed even though new blocks were being downloaded while the rescan was in process.

I got timeout errors on both the rescan and the following listunspent:

$ bitcoin-cli rescanblockchain
error: timeout on transient error: Could not connect to the server 127.0.0.1:8332 (error code 0 - "timeout reached")

Make sure the bitcoind server is running and that you are connecting to the correct RPC port.

$ bitcoin-cli listunspent | jq '.[]|select(.reused==true)|{amount,txid}'
error: timeout on transient error: Could not connect to the server 127.0.0.1:8332 (error code 0 - "timeout reached")

Make sure the bitcoind server is running and that you are connecting to the correct RPC port.

I guess this is a separate issue related to a semaphore deadlock or some such, but don't know how to investigate that. The bitcoin-qt is currently still frozen and running in gdb if there is anything useful I can do before killing and restarting it.

dooglus commented 2 years ago

Never mind - the gdb window shows that bitcoin-qt had crashed. It shows:

Thread 35 "b-http" received signal SIGPIPE, Broken pipe.

This is the thread 35 backtrace:

Thread 35 (Thread 0x7fff577fe700 (LWP 4121055) "b-http"):
#0  __GI___writev (iovcnt=2, iov=0x7fff577fd1d0, fd=82) at ../sysdeps/unix/sysv/linux/writev.c:26
#1  __GI___writev (fd=82, iov=0x7fff577fd1d0, iovcnt=2) at ../sysdeps/unix/sysv/linux/writev.c:24
#2  0x00007ffff68b54fb in  () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#3  0x00007ffff68b9315 in evbuffer_write_atmost () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#4  0x00007ffff68c30d3 in  () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#5  0x00007ffff68c8b4f in  () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#6  0x00007ffff68c928f in event_base_loop () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#7  0x0000555555d85b26 in ThreadHTTP(event_base*) (base=0x7fff84073a10) at httpserver.cpp:290
#8  0x0000555555d9ad83 in std::__invoke_impl<bool, bool (*)(event_base*), event_base*>(std::__invoke_other, bool (*&&)(event_base*), event_base*&&) (__f=@0x7fff84063730: 0x555555d859bf <ThreadHTTP(event_base*)>) at /usr/include/c++/10/bits/invoke.h:60
#9  0x0000555555d9aa0b in std::__invoke<bool (*)(event_base*), event_base*>(bool (*&&)(event_base*), event_base*&&) (__fn=@0x7fff84063730: 0x555555d859bf <ThreadHTTP(event_base*)>) at /usr/include/c++/10/bits/invoke.h:95
#10 0x0000555555d9a748 in std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (this=0x7fff84063728) at /usr/include/c++/10/thread:264
#11 0x0000555555d9a64b in std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::operator()() (this=0x7fff84063728) at /usr/include/c++/10/thread:271
#12 0x0000555555d9a483 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> > >::_M_run() (this=0x7fff84063720) at /usr/include/c++/10/thread:215
#13 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#14 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#15 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

And here are all the backtraces:

(gdb) thread apply all where

Thread 50 (Thread 0x7ffea3dfd700 (LWP 4121282) "b-qt-walletctrl"):
#0  0x00007ffff632edef in __GI___poll (fds=0x7fffc0001be0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d1cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff7bd451f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff7b7b98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff799aa9e in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff799bbe1 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 49 (Thread 0x7ffea45fe700 (LWP 4121281) "b-qt-rpcconsole"):
#0  0x00007ffff632edef in __GI___poll (fds=0x7fffd4001510, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d1cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff7bd451f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff7b7b98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff799aa9e in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff799bbe1 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 48 (Thread 0x7ffea4dff700 (LWP 4121280) "b-qt-clientmodl"):
#0  0x00007ffff632edef in __GI___poll (fds=0x7fffa80029e0, nfds=1, timeout=250) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d1cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff7bd451f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff7b7b98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff799aa9e in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff799bbe1 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 47 (Thread 0x7ffea5600700 (LWP 4121279) "b-msghand"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x7ffea55ff8e0, clockid=-1520437248, expected=0, futex_word=0x7fff8407a7d0) at ../sysdeps/nptl/futex-internal.h:323
#1  __pthread_cond_wait_common (abstime=0x7ffea55ff8e0, clockid=-1520437248, mutex=0x7fff8407a7d8, cond=0x7fff8407a7a8) at pthread_cond_wait.c:520
#2  __pthread_cond_clockwait (abstime=0x7ffea55ff8e0, clockid=-1520437248, mutex=0x7fff8407a7d8, cond=0x7fff8407a7a8) at pthread_cond_wait.c:677
#3  __pthread_cond_clockwait (cond=0x7fff8407a7a8, mutex=0x7fff8407a7d8, clockid=-1520437248, abstime=0x7ffea55ff8e0) at pthread_cond_wait.c:665
#4  0x000055555584a029 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff8407a7a8, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:209
#5  0x00005555558417e8 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff8407a7a8, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:119
#6  0x000055555588cbf1 in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> >, CConnman::ThreadMessageHandler()::<lambda()> >(std::unique_lock<std::mutex> &, const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1, 1000000000> > > &, struct {...}) (this=0x7fff8407a7a8, __lock=..., __atime=..., __p=...) at /usr/include/c++/10/condition_variable:158
#7  0x000055555588217c in CConnman::ThreadMessageHandler() (this=0x7fff8407a530) at net.cpp:2029
#8  0x0000555555884de0 in operator()() const (__closure=0x7fffb4000b60) at net.cpp:2360
#9  0x0000555555894b57 in std::__invoke_impl<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#10 0x0000555555893f81 in std::__invoke_r<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#11 0x00005555558931e2 in std::_Function_handler<void(), CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/10/bits/std_function.h:291
#12 0x000055555568eaf1 in std::function<void ()>::operator()() const (this=0x7ffea55ffc60) at /usr/include/c++/10/bits/std_function.h:622
#13 0x0000555555e75ae3 in util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>) (thread_name="msghand", thread_func=...) at util/thread.cpp:21
#14 0x0000555555891dd1 in std::__invoke_impl<void, void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(std::__invoke_other, void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__f=@0x7fff24fe82b8: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:60
#15 0x000055555589148e in std::__invoke<void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__fn=@0x7fff24fe82b8: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:95
#16 0x0000555555890f5e in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x7fff24fe82a8) at /usr/include/c++/10/thread:264
#17 0x0000555555890d55 in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::operator()(void) (this=0x7fff24fe82a8) at /usr/include/c++/10/thread:271
#18 0x0000555555890bc1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > > >::_M_run(void) (this=0x7fff24fe82a0) at /usr/include/c++/10/thread:215
#19 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#20 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#21 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 46 (Thread 0x7ffea5e01700 (LWP 4121278) "b-opencon"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x7ffea5e000d0, clockid=-1512046608, expected=0, futex_word=0x7fff8407a830) at ../sysdeps/nptl/futex-internal.h:323
#1  __pthread_cond_wait_common (abstime=0x7ffea5e000d0, clockid=-1512046608, mutex=0x7fff8407a838, cond=0x7fff8407a808) at pthread_cond_wait.c:520
#2  __pthread_cond_clockwait (abstime=0x7ffea5e000d0, clockid=-1512046608, mutex=0x7fff8407a838, cond=0x7fff8407a808) at pthread_cond_wait.c:677
#3  __pthread_cond_clockwait (cond=0x7fff8407a808, mutex=0x7fff8407a838, clockid=-1512046608, abstime=0x7ffea5e000d0) at pthread_cond_wait.c:665
#4  0x000055555584a029 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff8407a808, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:209
#5  0x00005555558417e8 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff8407a808, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:119
#6  0x0000555555e2061f in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> >, CThreadInterrupt::sleep_for(std::chrono::_V2::steady_clock::duration)::<lambda()> >(std::unique_lock<std::mutex> &, const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1, 1000000000> > > &, struct {...}) (this=0x7fff8407a808, __lock=..., __atime=..., __p=...) at /usr/include/c++/10/condition_variable:158
#7  0x0000555555e2057f in std::condition_variable::wait_for<long int, std::ratio<1, 1000000000>, CThreadInterrupt::sleep_for(std::chrono::_V2::steady_clock::duration)::<lambda()> >(std::unique_lock<std::mutex> &, const std::chrono::duration<long, std::ratio<1, 1000000000> > &, struct {...}) (this=0x7fff8407a808, __lock=..., __rtime=..., __p=...) at /usr/include/c++/10/condition_variable:185
#8  0x0000555555e20491 in CThreadInterrupt::sleep_for(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) (this=0x7fff8407a808, rel_time=...) at threadinterrupt.cpp:34
#9  0x000055555587f4f5 in CConnman::ThreadOpenConnections(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> > > >) (this=0x7fff8407a530, connect=std::vector of length 0, capacity 0) at net.cpp:1621
#10 0x0000555555884d2d in operator()() const (__closure=0x7fffb8001bd0) at net.cpp:2356
#11 0x0000555555894cd5 in std::__invoke_impl<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#12 0x00005555558941ad in std::__invoke_r<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#13 0x000055555589344c in std::_Function_handler<void(), CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/10/bits/std_function.h:291
#14 0x000055555568eaf1 in std::function<void ()>::operator()() const (this=0x7ffea5e00c60) at /usr/include/c++/10/bits/std_function.h:622
#15 0x0000555555e75ae3 in util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>) (thread_name="opencon", thread_func=...) at util/thread.cpp:21
#16 0x0000555555891fa9 in std::__invoke_impl<void, void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(std::__invoke_other, void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__f=@0x7fff2efbc220: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:60
#17 0x000055555589160e in std::__invoke<void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__fn=@0x7fff2efbc220: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:95
#18 0x0000555555890fea in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x7fff2efbc1f8) at /usr/include/c++/10/thread:264
#19 0x0000555555890d93 in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::operator()(void) (this=0x7fff2efbc1f8) at /usr/include/c++/10/thread:271
#20 0x0000555555890c07 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > > >::_M_run(void) (this=0x7fff2efbc1f0) at /usr/include/c++/10/thread:215
#21 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#22 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#23 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 45 (Thread 0x7ffea6602700 (LWP 4121277) "b-addcon"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x7ffea66017c0, clockid=-1503652128, expected=0, futex_word=0x7fff8407a830) at ../sysdeps/nptl/futex-internal.h:323
#1  __pthread_cond_wait_common (abstime=0x7ffea66017c0, clockid=-1503652128, mutex=0x7fff8407a838, cond=0x7fff8407a808) at pthread_cond_wait.c:520
#2  __pthread_cond_clockwait (abstime=0x7ffea66017c0, clockid=-1503652128, mutex=0x7fff8407a838, cond=0x7fff8407a808) at pthread_cond_wait.c:677
#3  __pthread_cond_clockwait (cond=0x7fff8407a808, mutex=0x7fff8407a838, clockid=-1503652128, abstime=0x7ffea66017c0) at pthread_cond_wait.c:665
#4  0x000055555584a029 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff8407a808, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:209
#5  0x00005555558417e8 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff8407a808, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:119
#6  0x0000555555e2061f in std::condition_variable::wait_until<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> >, CThreadInterrupt::sleep_for(std::chrono::_V2::steady_clock::duration)::<lambda()> >(std::unique_lock<std::mutex> &, const std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1, 1000000000> > > &, struct {...}) (this=0x7fff8407a808, __lock=..., __atime=..., __p=...) at /usr/include/c++/10/condition_variable:158
#7  0x0000555555e2057f in std::condition_variable::wait_for<long int, std::ratio<1, 1000000000>, CThreadInterrupt::sleep_for(std::chrono::_V2::steady_clock::duration)::<lambda()> >(std::unique_lock<std::mutex> &, const std::chrono::duration<long, std::ratio<1, 1000000000> > &, struct {...}) (this=0x7fff8407a808, __lock=..., __rtime=..., __p=...) at /usr/include/c++/10/condition_variable:185
#8  0x0000555555e20491 in CThreadInterrupt::sleep_for(std::chrono::duration<long, std::ratio<1l, 1000000000l> >) (this=0x7fff8407a808, rel_time=...) at threadinterrupt.cpp:34
#9  0x000055555588199e in CConnman::ThreadOpenAddedConnections() (this=0x7fff8407a530) at net.cpp:1953
#10 0x0000555555884ccc in operator()() const (__closure=0x7fffd0000b60) at net.cpp:2343
#11 0x0000555555894ee3 in std::__invoke_impl<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#12 0x00005555558943d5 in std::__invoke_r<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#13 0x00005555558936b6 in std::_Function_handler<void(), CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/10/bits/std_function.h:291
#14 0x000055555568eaf1 in std::function<void ()>::operator()() const (this=0x7ffea6601c60) at /usr/include/c++/10/bits/std_function.h:622
#15 0x0000555555e75ae3 in util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>) (thread_name="addcon", thread_func=...) at util/thread.cpp:21
#16 0x0000555555892180 in std::__invoke_impl<void, void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(std::__invoke_other, void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__f=@0x7fff256bce68: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:60
#17 0x000055555589178e in std::__invoke<void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__fn=@0x7fff256bce68: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:95
#18 0x0000555555891076 in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x7fff256bce58) at /usr/include/c++/10/thread:264
#19 0x0000555555890dd1 in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::operator()(void) (this=0x7fff256bce58) at /usr/include/c++/10/thread:271
#20 0x0000555555890c4d in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > > >::_M_run(void) (this=0x7fff256bce50) at /usr/include/c++/10/thread:215
#21 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#22 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#23 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 44 (Thread 0x7ffea6e03700 (LWP 4121276) "b-net"):
#0  0x00007ffff632edef in __GI___poll (fds=0x7fffac3372e0, nfds=28, timeout=50) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x0000555555e2b7bd in Sock::WaitMany(std::chrono::duration<long, std::ratio<1l, 1000l> >, std::unordered_map<std::shared_ptr<Sock const>, Sock::Events, Sock::HashSharedPtrSock, Sock::EqualSharedPtrSock, std::allocator<std::pair<std::shared_ptr<Sock const> const, Sock::Events> > >&) const (this=0x7fffac2e3240, timeout=..., events_per_sock=Python Exception <class 'gdb.error'> No type named std::__detail::_Hash_node<struct std::pair<std::shared_ptr<Sock const> const, Sock::Events>, true>.:
std::unordered_map with 28 elements) at util/sock.cpp:156
#2  0x000055555587c342 in CConnman::SocketHandler() (this=0x7fff8407a530) at net.cpp:1249
#3  0x000055555587d207 in CConnman::ThreadSocketHandler() (this=0x7fff8407a530) at net.cpp:1378
#4  0x0000555555884c48 in operator()() const (__closure=0x7fffac001e90) at net.cpp:2335
#5  0x00005555558951df in std::__invoke_impl<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#6  0x0000555555894825 in std::__invoke_r<void, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#7  0x0000555555893b8a in std::_Function_handler<void(), CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/10/bits/std_function.h:291
#8  0x000055555568eaf1 in std::function<void ()>::operator()() const (this=0x7ffea6e02c60) at /usr/include/c++/10/bits/std_function.h:622
#9  0x0000555555e75ae3 in util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>) (thread_name="net", thread_func=...) at util/thread.cpp:21
#10 0x00005555558924ec in std::__invoke_impl<void, void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(std::__invoke_other, void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__f=@0x7fff24e7ee48: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:60
#11 0x0000555555891a8e in std::__invoke<void (*)(std::basic_string_view<char>, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> >(void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__fn=@0x7fff24e7ee48: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:95
#12 0x000055555589118e in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x7fff24e7ee38) at /usr/include/c++/10/thread:264
#13 0x0000555555890e4d in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > >::operator()(void) (this=0x7fff24e7ee38) at /usr/include/c++/10/thread:271
#14 0x0000555555890cd9 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, CConnman::Start(CScheduler&, const CConnman::Options&)::<lambda()> > > >::_M_run(void) (this=0x7fff24e7ee30) at /usr/include/c++/10/thread:215
#15 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#17 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 43 (Thread 0x7fffcd7fa700 (LWP 4121275) "b-torcontrol"):
#0  0x00007ffff633ae16 in epoll_wait (epfd=24, events=0x7fff2efbc530, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
#1  0x00007ffff68d2e29 in  () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#2  0x00007ffff68c9035 in event_base_loop () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#3  0x0000555555c0d9d5 in TorControlThread(CService) (onion_service_target=...) at torcontrol.cpp:658
#4  0x0000555555c0daaf in operator()() const (__closure=0x7fffd8001bd0) at torcontrol.cpp:676
#5  0x0000555555c108f1 in std::__invoke_impl<void, StartTorControl(CService)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#6  0x0000555555c1073d in std::__invoke_r<void, StartTorControl(CService)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#7  0x0000555555c1056a in std::_Function_handler<void(), StartTorControl(CService)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/10/bits/std_function.h:291
#8  0x000055555568eaf1 in std::function<void ()>::operator()() const (this=0x7fffcd7f9c40) at /usr/include/c++/10/bits/std_function.h:622
#9  0x0000555555e75ae3 in util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>) (thread_name="torcontrol", thread_func=...) at util/thread.cpp:21
#10 0x0000555555c101e3 in std::__invoke_impl<void, void (*)(std::basic_string_view<char>, std::function<void()>), char const*, StartTorControl(CService)::<lambda()> >(std::__invoke_other, void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__f=@0x7fff258d24c8: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:60
#11 0x0000555555c10034 in std::__invoke<void (*)(std::basic_string_view<char>, std::function<void()>), char const*, StartTorControl(CService)::<lambda()> >(void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__fn=@0x7fff258d24c8: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:95
#12 0x0000555555c0feb4 in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, StartTorControl(CService)::<lambda()> > >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x7fff258d2498) at /usr/include/c++/10/thread:264
#13 0x0000555555c0fe2f in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, StartTorControl(CService)::<lambda()> > >::operator()(void) (this=0x7fff258d2498) at /usr/include/c++/10/thread:271
#14 0x0000555555c0fdf1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, StartTorControl(CService)::<lambda()> > > >::_M_run(void) (this=0x7fff258d2490) at /usr/include/c++/10/thread:215
#15 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#17 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 40 (Thread 0x7fffea7fb700 (LWP 4121221) "b-qt-init"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e9e978 <leveldb::Env::Default()::env_container+88>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e9e928 <leveldb::Env::Default()::env_container+8>, cond=0x555556e9e950 <leveldb::Env::Default()::env_container+48>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e9e950 <leveldb::Env::Default()::env_container+48>, mutex=0x555556e9e928 <leveldb::Env::Default()::env_container+8>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x000055555635ccdc in leveldb::port::CondVar::Wait() (this=0x555556e9e950 <leveldb::Env::Default()::env_container+48>) at ./leveldb/port/port_stdcxx.h:77
#5  0x0000555556390f3f in leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadMain() (this=0x555556e9e920 <leveldb::Env::Default()::env_container>) at leveldb/util/env_posix.cc:821
#6  0x0000555556390acd in leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadEntryPoint(leveldb::(anonymous namespace)::PosixEnv*) (env=0x555556e9e920 <leveldb::Env::Default()::env_container>) at leveldb/util/env_posix.cc:736
#7  0x0000555556393e63 in std::__invoke_impl<void, void (*)(leveldb::(anonymous namespace)::PosixEnv*), leveldb::(anonymous namespace)::PosixEnv*>(std::__invoke_other, void (*&&)(leveldb::(anonymous namespace)::PosixEnv*)) (__f=@0x7fff2e232200: 0x555556390a
a2 <leveldb::(anonymous namespace)::PosixEnv::BackgroundThreadEntryPoint(leveldb::(anonymous namespace)::PosixEnv*)>) at /usr/include/c++/10/bits/invoke.h:60
#8  0x0000555556393cec in std::__invoke<void (*)(leveldb::(anonymous namespace)::PosixEnv*), leveldb::(anonymous namespace)::PosixEnv*>(void (*&&)(leveldb::(anonymous namespace)::PosixEnv*)) (__fn=@0x7fff2e232200: 0x555556390aa2 <leveldb::(anonymous namespa
ce)::PosixEnv::BackgroundThreadEntryPoint(leveldb::(anonymous namespace)::PosixEnv*)>) at /usr/include/c++/10/bits/invoke.h:95
#9  0x0000555556393bcc in std::thread::_Invoker<std::tuple<void (*)(leveldb::(anonymous namespace)::PosixEnv*), leveldb::(anonymous namespace)::PosixEnv*> >::_M_invoke<0, 1>(std::_Index_tuple<0, 1>) (this=0x7fff2e2321f8) at /usr/include/c++/10/thread:264
#10 0x0000555556393b63 in std::thread::_Invoker<std::tuple<void (*)(leveldb::(anonymous namespace)::PosixEnv*), leveldb::(anonymous namespace)::PosixEnv*> >::operator()() (this=0x7fff2e2321f8) at /usr/include/c++/10/thread:271
#11 0x0000555556393b25 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(leveldb::(anonymous namespace)::PosixEnv*), leveldb::(anonymous namespace)::PosixEnv*> > >::_M_run() (this=0x7fff2e2321f0) at /usr/include/c++/10/thread:215
#12 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#13 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#14 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 39 (Thread 0x7fff557fa700 (LWP 4121059) "b-httpworker.3"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x7fff840620e4) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fff84062090, cond=0x7fff840620b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fff840620b8, mutex=0x7fff84062090) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555d8ddb7 in WorkQueue<HTTPClosure>::Run() (this=0x7fff84062090) at httpserver.cpp:105
#5  0x0000555555d86d3d in HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) (queue=0x7fff84062090, worker_num=3) at httpserver.cpp:343
#6  0x0000555555d9abf1 in std::__invoke_impl<void, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(std::__invoke_other, void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__f=@0x7fff84064448: 0x555555d86cd5 <H
TTPWorkQueueRun(WorkQueue<HTTPClosure>*, int)>) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555d9a8d8 in std::__invoke<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__fn=@0x7fff84064448: 0x555555d86cd5 <HTTPWorkQueueRun(WorkQueue<HTTPC
losure>*, int)>) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555d9a6d4 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7fff84064438) at /usr/include/c++/10/thread:264
#9  0x0000555555d9a609 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::operator()() (this=0x7fff84064438) at /usr/include/c++/10/thread:271
#10 0x0000555555d9a43d in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> > >::_M_run() (this=0x7fff84064430) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 38 (Thread 0x7fff55ffb700 (LWP 4121058) "b-httpworker.2"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x7fff840620e4) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fff84062090, cond=0x7fff840620b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fff840620b8, mutex=0x7fff84062090) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555d8ddb7 in WorkQueue<HTTPClosure>::Run() (this=0x7fff84062090) at httpserver.cpp:105
#5  0x0000555555d86d3d in HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) (queue=0x7fff84062090, worker_num=2) at httpserver.cpp:343
#6  0x0000555555d9abf1 in std::__invoke_impl<void, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(std::__invoke_other, void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__f=@0x7fff840641b8: 0x555555d86cd5 <H
TTPWorkQueueRun(WorkQueue<HTTPClosure>*, int)>) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555d9a8d8 in std::__invoke<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__fn=@0x7fff840641b8: 0x555555d86cd5 <HTTPWorkQueueRun(WorkQueue<HTTPC
losure>*, int)>) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555d9a6d4 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7fff840641a8) at /usr/include/c++/10/thread:264
#9  0x0000555555d9a609 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::operator()() (this=0x7fff840641a8) at /usr/include/c++/10/thread:271
#10 0x0000555555d9a43d in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> > >::_M_run() (this=0x7fff840641a0) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 37 (Thread 0x7fff567fc700 (LWP 4121057) "b-httpworker.1"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x7fff840620e4) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fff84062090, cond=0x7fff840620b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fff840620b8, mutex=0x7fff84062090) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555d8ddb7 in WorkQueue<HTTPClosure>::Run() (this=0x7fff84062090) at httpserver.cpp:105
#5  0x0000555555d86d3d in HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) (queue=0x7fff84062090, worker_num=1) at httpserver.cpp:343
#6  0x0000555555d9abf1 in std::__invoke_impl<void, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(std::__invoke_other, void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__f=@0x7fff84063998: 0x555555d86cd5 <HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int)>) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555d9a8d8 in std::__invoke<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__fn=@0x7fff84063998: 0x555555d86cd5 <HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int)>) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555d9a6d4 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7fff84063988) at /usr/include/c++/10/thread:264
#9  0x0000555555d9a609 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::operator()() (this=0x7fff84063988) at /usr/include/c++/10/thread:271
#10 0x0000555555d9a43d in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> > >::_M_run() (this=0x7fff84063980) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 36 (Thread 0x7fff56ffd700 (LWP 4121056) "b-httpworker.0"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x7fff840620e0) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7fff84062090, cond=0x7fff840620b8) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x7fff840620b8, mutex=0x7fff84062090) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555d8ddb7 in WorkQueue<HTTPClosure>::Run() (this=0x7fff84062090) at httpserver.cpp:105
#5  0x0000555555d86d3d in HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) (queue=0x7fff84062090, worker_num=0) at httpserver.cpp:343
#6  0x0000555555d9abf1 in std::__invoke_impl<void, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(std::__invoke_other, void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__f=@0x7fff840639c8: 0x555555d86cd5 <HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int)>) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555d9a8d8 in std::__invoke<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) (__fn=@0x7fff840639c8: 0x555555d86cd5 <HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int)>) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555d9a6d4 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7fff840639b8) at /usr/include/c++/10/thread:264
#9  0x0000555555d9a609 in std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> >::operator()() (this=0x7fff840639b8) at /usr/include/c++/10/thread:271
#10 0x0000555555d9a43d in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int> > >::_M_run() (this=0x7fff840639b0) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 35 (Thread 0x7fff577fe700 (LWP 4121055) "b-http"):
#0  __GI___writev (iovcnt=2, iov=0x7fff577fd1d0, fd=82) at ../sysdeps/unix/sysv/linux/writev.c:26
#1  __GI___writev (fd=82, iov=0x7fff577fd1d0, iovcnt=2) at ../sysdeps/unix/sysv/linux/writev.c:24
#2  0x00007ffff68b54fb in  () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#3  0x00007ffff68b9315 in evbuffer_write_atmost () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#4  0x00007ffff68c30d3 in  () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#5  0x00007ffff68c8b4f in  () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#6  0x00007ffff68c928f in event_base_loop () at /usr/lib/x86_64-linux-gnu/libevent-2.1.so.7
#7  0x0000555555d85b26 in ThreadHTTP(event_base*) (base=0x7fff84073a10) at httpserver.cpp:290
#8  0x0000555555d9ad83 in std::__invoke_impl<bool, bool (*)(event_base*), event_base*>(std::__invoke_other, bool (*&&)(event_base*), event_base*&&) (__f=@0x7fff84063730: 0x555555d859bf <ThreadHTTP(event_base*)>) at /usr/include/c++/10/bits/invoke.h:60
#9  0x0000555555d9aa0b in std::__invoke<bool (*)(event_base*), event_base*>(bool (*&&)(event_base*), event_base*&&) (__fn=@0x7fff84063730: 0x555555d859bf <ThreadHTTP(event_base*)>) at /usr/include/c++/10/bits/invoke.h:95
#10 0x0000555555d9a748 in std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) (this=0x7fff84063728) at /usr/include/c++/10/thread:264
#11 0x0000555555d9a64b in std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::operator()() (this=0x7fff84063728) at /usr/include/c++/10/thread:271
#12 0x0000555555d9a483 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> > >::_M_run() (this=0x7fff84063720) at /usr/include/c++/10/thread:215
#13 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#14 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#15 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 34 (Thread 0x7fff57fff700 (LWP 4121054) "b-scheduler"):
#0  futex_abstimed_wait_cancelable (private=0, abstime=0x7fff57ffe8e0, clockid=1476388864, expected=0, futex_word=0x7fff8400475c) at ../sysdeps/nptl/futex-internal.h:323
#1  __pthread_cond_wait_common (abstime=0x7fff57ffe8e0, clockid=1476388864, mutex=0x7fff84004708, cond=0x7fff84004730) at pthread_cond_wait.c:520
#2  __pthread_cond_clockwait (abstime=0x7fff57ffe8e0, clockid=1476388864, mutex=0x7fff84004708, cond=0x7fff84004730) at pthread_cond_wait.c:677
#3  __pthread_cond_clockwait (cond=0x7fff84004730, mutex=0x7fff84004708, clockid=1476388864, abstime=0x7fff57ffe8e0) at pthread_cond_wait.c:665
#4  0x000055555584a029 in std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff84004730, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:209
#5  0x00005555558417e8 in std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) (this=0x7fff84004730, __lock=..., __atime=...) at /usr/include/c++/10/condition_variable:119
#6  0x0000555556238938 in CScheduler::serviceQueue() (this=0x7fff84004700) at scheduler.cpp:45
#7  0x0000555555816e7c in operator()() const (__closure=0x7fff4c000b60) at init.cpp:1154
#8  0x0000555555828ebd in std::__invoke_impl<void, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#9  0x0000555555828aeb in std::__invoke_r<void, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#10 0x00005555558286f0 in std::_Function_handler<void(), AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/10/bits/std_function.h:291
#11 0x000055555568eaf1 in std::function<void ()>::operator()() const (this=0x7fff57ffec60) at /usr/include/c++/10/bits/std_function.h:622
#12 0x0000555555e75ae3 in util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>) (thread_name="scheduler", thread_func=...) at util/thread.cpp:21
#13 0x0000555555827fb2 in std::__invoke_impl<void, void (*)(std::basic_string_view<char>, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> >(std::__invoke_other, void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__f=@0x7fff84004a68: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:60
#14 0x0000555555827c26 in std::__invoke<void (*)(std::basic_string_view<char>, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> >(void (*&&)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>)) (__fn=@0x7fff84004a68: 0x555555e75971 <util::TraceThread(std::basic_string_view<char, std::char_traits<char> >, std::function<void ()>)>) at /usr/include/c++/10/bits/invoke.h:95
#15 0x0000555555827926 in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> > >::_M_invoke<0, 1, 2>(std::_Index_tuple<0, 1, 2>) (this=0x7fff84004a58) at /usr/include/c++/10/thread:264
#16 0x0000555555827815 in std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> > >::operator()(void) (this=0x7fff84004a58) at /usr/include/c++/10/thread:271
#17 0x0000555555827799 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(std::basic_string_view<char, std::char_traits<char> >, std::function<void()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::<lambda()> > > >::_M_run(void) (this=0x7fff84004a50) at /usr/include/c++/10/thread:215
#18 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#19 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 33 (Thread 0x7fff74ff9700 (LWP 4121053) "b-scriptch.10"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84046808) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84046808) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84046808) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84046800) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 32 (Thread 0x7fff757fa700 (LWP 4121052) "b-scriptch.9"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84046588) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84046588) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84046588) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84046580) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 31 (Thread 0x7fff75ffb700 (LWP 4121051) "b-scriptch.8"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84046308) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84046308) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84046308) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84046300) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 30 (Thread 0x7fff767fc700 (LWP 4121050) "b-scriptch.7"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84046088) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84046088) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84046088) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84046080) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 29 (Thread 0x7fff76ffd700 (LWP 4121049) "b-scriptch.6"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84045e08) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84045e08) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84045e08) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84045e00) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 28 (Thread 0x7fff777fe700 (LWP 4121048) "b-scriptch.5"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84045b88) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84045b88) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84045b88) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84045b80) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 27 (Thread 0x7fff77fff700 (LWP 4121047) "b-scriptch.4"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84045908) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84045908) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84045908) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84045900) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 26 (Thread 0x7fff88ffb700 (LWP 4121046) "b-scriptch.3"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f0 <scriptcheckqueue+80>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84004f28) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84004f28) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84004f28) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84004f20) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 25 (Thread 0x7fff897fc700 (LWP 4121045) "b-scriptch.2"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x555556ec80b8) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x555556ec80b8) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x555556ec80b8) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x555556ec80b0) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 24 (Thread 0x7fff89ffd700 (LWP 4121044) "b-scriptch.1"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x7fff84004498) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x7fff84004498) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x7fff84004498) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x7fff84004490) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 23 (Thread 0x7fffa0efd700 (LWP 4121043) "b-scriptch.0"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556e948f4 <scriptcheckqueue+84>) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556e948a0 <scriptcheckqueue>, cond=0x555556e948c8 <scriptcheckqueue+40>) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556e948c8 <scriptcheckqueue+40>, mutex=0x555556e948a0 <scriptcheckqueue>) at pthread_cond_wait.c:638
#3  0x00007ffff665e90c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x0000555555ccc63e in CCheckQueue<CScriptCheck>::Loop(bool) (this=0x555556e948a0 <scriptcheckqueue>, fMaster=false) at ./checkqueue.h:101
#5  0x0000555555cc42c1 in CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}::operator()() const (this=0x555556ec3688) at ./checkqueue.h:156
#6  0x0000555555cf0f11 in std::__invoke_impl<void, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(std::__invoke_other, CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#7  0x0000555555cf0e4d in std::__invoke<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}>(CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#8  0x0000555555cf0d81 in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x555556ec3688) at /usr/include/c++/10/thread:264
#9  0x0000555555cf0d2f in std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> >::operator()() (this=0x555556ec3688) at /usr/include/c++/10/thread:271
#10 0x0000555555cf0c1f in std::thread::_State_impl<std::thread::_Invoker<std::tuple<CCheckQueue<CScriptCheck>::StartWorkerThreads(int)::{lambda()#1}> > >::_M_run() (this=0x555556ec3680) at /usr/include/c++/10/thread:215
#11 0x00007ffff6663ed0 in  () at /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#12 0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 22 (Thread 0x7fffa16fe700 (LWP 4121041) "b-qt-init"):
#0  0x00007ffff632edef in __GI___poll (fds=0x7fff84004240, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d1cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff7bd451f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff7b7b98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff799aa9e in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff799bbe1 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 21 (Thread 0x7fffa1eff700 (LWP 4121037) "QDBusConnection"):
#0  0x00007ffff632edef in __GI___poll (fds=0x7fff9001e800, nfds=7, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d1cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff7bd451f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff7b7b98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff799aa9e in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff6b14a27 in  () at /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007ffff799bbe1 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 20 (Thread 0x7fffa2700700 (LWP 4121036) "bitcoin:disk$3"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556fbb088) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556fbb038, cond=0x555556fbb060) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556fbb060, mutex=0x555556fbb038) at pthread_cond_wait.c:638
#3  0x00007fffc66815db in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#4  0x00007fffc66810a7 in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#5  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 19 (Thread 0x7fffa2f01700 (LWP 4121035) "bitcoin:disk$2"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556fbb088) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556fbb038, cond=0x555556fbb060) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556fbb060, mutex=0x555556fbb038) at pthread_cond_wait.c:638
#3  0x00007fffc66815db in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#4  0x00007fffc66810a7 in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#5  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 18 (Thread 0x7fffc4bbe700 (LWP 4121034) "bitcoin:disk$1"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556fbb088) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556fbb038, cond=0x555556fbb060) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556fbb060, mutex=0x555556fbb038) at pthread_cond_wait.c:638
#3  0x00007fffc66815db in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#4  0x00007fffc66810a7 in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#5  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 17 (Thread 0x7fffccff9700 (LWP 4121033) "bitcoin:disk$0"):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x555556fbb088) at ../sysdeps/nptl/futex-internal.h:186
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555556fbb038, cond=0x555556fbb060) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x555556fbb060, mutex=0x555556fbb038) at pthread_cond_wait.c:638
#3  0x00007fffc66815db in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#4  0x00007fffc66810a7 in  () at /usr/lib/x86_64-linux-gnu/dri/iris_dri.so
#5  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fffebfff700 (LWP 4121019) "gdbus"):
#0  0x00007ffff632edef in __GI___poll (fds=0x555557016e20, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d40b in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff111aa36 in  () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007ffff5aa60bd in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7ffff0aa0700 (LWP 4121018) "gmain"):
#0  0x00007ffff632edef in __GI___poll (fds=0x5555570023e0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d1cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff5a7d221 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff5aa60bd in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7ffff26cb700 (LWP 4121016) "QXcbEventQueue"):
#0  0x00007ffff632edef in __GI___poll (fds=0x7ffff26cac28, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff3596d02 in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007ffff359905a in xcb_wait_for_event () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007ffff2ec27e0 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007ffff799bbe1 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff641aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#6  0x00007ffff633aaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff3309040 (LWP 4121011) "bitcoin-qt"):
#0  0x00007ffff632edef in __GI___poll (fds=0x55555770f120, nfds=7, timeout=199) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff5a7d0ae in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ffff5a7d1cf in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff7bd451f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff7b7b98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff7b83c00 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00005555555ce96f in GuiMain(int, char**) (argc=2, argv=0x7fffffffdc48) at qt/bitcoin.cpp:697
#7  0x00005555555c6908 in main(int, char**) (argc=2, argv=0x7fffffffdc48) at qt/main.cpp:24
dooglus commented 2 years ago

I restarted bitcoin-qt after the rescan and crash and the UTXO that hasn't been used is still marked as used.

sipa commented 2 years ago

@dooglus Spammers