-
Notifications
You must be signed in to change notification settings - Fork 37.7k
Closed
Labels
Description
For testing, I am using this:
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -2102,6 +2102,7 @@ OutputType CWallet::TransactionChangeType(const std::optional<OutputType>& chang
void CWallet::CommitTransaction(CTransactionRef tx, mapValue_t mapValue, std::vector<std::pair<std::string, std::string>> orderForm)
{
LOCK(cs_wallet);
+ throw std::runtime_error(std::string(__func__) + ": Wallet db error, transaction commit failed");
WalletLogPrintf("CommitTransaction:\n%s", tx->ToString()); /* Continued */
// Add tx to wallet, because if it has change it's also ours,
To trigger it, you have to attempt to send a transaction.
This correctly displays an error dialog, then exits with:
************************
EXCEPTION: St13runtime_error
CommitTransaction: Wallet db error, transaction commit failed
bitcoin in QPushButton->SendCoinsDialog
bitcoin-qt: ./checkqueue.h:204: CCheckQueue<CScriptCheck>::~CCheckQueue() [T = CScriptCheck]: Assertion `m_worker_threads.empty()' failed.
Aborted
This issue is related to the failed assertion during the unclean exit.