Browse Source

fix crash/lockup on KMD with mining pools when an old utxo makes IsFinalTx fail in TestBlockValidity.

warmup
blackjok3r 5 years ago
parent
commit
eca62bb4f3
  1. 3
      src/miner.cpp
  2. 3
      src/rpc/mining.cpp

3
src/miner.cpp

@ -819,7 +819,8 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
LEAVE_CRITICAL_SECTION(cs_main); LEAVE_CRITICAL_SECTION(cs_main);
LEAVE_CRITICAL_SECTION(mempool.cs); LEAVE_CRITICAL_SECTION(mempool.cs);
} }
throw std::runtime_error("CreateNewBlock(): TestBlockValidity failed"); //throw std::runtime_error("CreateNewBlock(): TestBlockValidity failed"); // crashes the node, moved to GetBlockTemplate and issue return.
return(0);
} }
//fprintf(stderr,"valid\n"); //fprintf(stderr,"valid\n");
} }

3
src/rpc/mining.cpp

@ -745,7 +745,8 @@ UniValue getblocktemplate(const UniValue& params, bool fHelp)
#endif #endif
ENTER_CRITICAL_SECTION(cs_main); ENTER_CRITICAL_SECTION(cs_main);
if (!pblocktemplate) if (!pblocktemplate)
throw JSONRPCError(RPC_OUT_OF_MEMORY, "Out of memory or no available utxo for staking"); throw std::runtime_error("CreateNewBlock(): create block failed");
//throw JSONRPCError(RPC_OUT_OF_MEMORY, "Out of memory or no available utxo for staking");
// Need to update only after we know CreateNewBlockWithKey succeeded // Need to update only after we know CreateNewBlockWithKey succeeded
pindexPrev = pindexPrevNew; pindexPrev = pindexPrevNew;

Loading…
Cancel
Save