From c2261146d94225aeda6ddede7496d208d5b5188a Mon Sep 17 00:00:00 2001 From: blackjok3r Date: Thu, 16 May 2019 19:33:05 +0800 Subject: [PATCH] Fix KMD lockup on pools, try new fix electrum crash. --- src/main.cpp | 6 ++++-- src/miner.cpp | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 049a732d5..663e94e26 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3978,8 +3978,10 @@ bool static DisconnectTip(CValidationState &state, bool fBare = false) { if ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED != 0 && (komodo_isPoS((CBlock *)&block,pindexDelete->GetHeight()) != 0))) { #ifdef ENABLE_WALLET - LOCK2(cs_main, pwalletMain->cs_wallet); - pwalletMain->EraseFromWallet(tx.GetHash()); + if (!fDisableWallet) { + LOCK(pwalletMain->cs_wallet); + pwalletMain->EraseFromWallet(tx.GetHash()); + } #endif } else diff --git a/src/miner.cpp b/src/miner.cpp index f131bc90e..dce1ff81f 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -803,6 +803,8 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 //fprintf(stderr,"check validity\n"); if ( !TestBlockValidity(state, *pblock, pindexPrev, false, false)) // invokes CC checks { + LEAVE_CRITICAL_SECTION(cs_main); + LEAVE_CRITICAL_SECTION(mempool.cs); throw std::runtime_error("CreateNewBlock(): TestBlockValidity failed"); } //fprintf(stderr,"valid\n");