diff options
author | MarcoFalke <falke.marco@gmail.com> | 2021-12-07 14:52:14 +0100 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2021-12-07 14:52:18 +0100 |
commit | 95fe477fd189ae30e76050b95280086d913e78c2 (patch) | |
tree | 8f59118d43fcdc52b49a0ba43a45588011e6e482 | |
parent | 6db7e43d420dd87943542ce8d5e8681dc52c7d7f (diff) | |
parent | faa185bb3abe5fdaeeae14706bad9437acac6a69 (diff) |
Merge bitcoin/bitcoin#23693: Revert "Fixes Bug in Transaction generation in ComplexMempool benchmark"
faa185bb3abe5fdaeeae14706bad9437acac6a69 Revert "Fixes Bug in Transaction generation in ComplexMempool benchmark" (MarcoFalke)
Pull request description:
Developers are reporting crashes (potentially OOM) on IRC, but I can't reproduce. Still, revert this for now, since one developer reported the bare metal this was running on crashed.
Top commit has no ACKs.
Tree-SHA512: 080db4fcfc682b68f4cc40dfabd9d3e0e3f6e6297ce4b782d5de2c83bc18f85f60efb1cda64c51e23c4fd2a05222a904e7a11853d9f9c052dcd26a53aa00b235
-rw-r--r-- | src/bench/mempool_stress.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/bench/mempool_stress.cpp b/src/bench/mempool_stress.cpp index d270c634f4..a0a82ea359 100644 --- a/src/bench/mempool_stress.cpp +++ b/src/bench/mempool_stress.cpp @@ -51,7 +51,7 @@ static std::vector<CTransactionRef> CreateOrderedCoins(FastRandomContext& det_ra size_t n_ancestors = det_rand.randrange(10)+1; for (size_t ancestor = 0; ancestor < n_ancestors && !available_coins.empty(); ++ancestor){ size_t idx = det_rand.randrange(available_coins.size()); - Available& coin = available_coins[idx]; + Available coin = available_coins[idx]; uint256 hash = coin.ref->GetHash(); // biased towards taking min_ancestors parents, but maybe more size_t n_to_take = det_rand.randrange(2) == 0 ? @@ -63,17 +63,15 @@ static std::vector<CTransactionRef> CreateOrderedCoins(FastRandomContext& det_ra tx.vin.back().scriptSig = CScript() << coin.tx_count; tx.vin.back().scriptWitness.stack.push_back(CScriptNum(coin.tx_count).getvch()); } - if (coin.vin_left == coin.ref->vout.size()) { - if(available_coins.size()-1!=idx){ // if idx is not the last index swap it with the end index - std::swap(available_coins[idx], available_coins.back()); - } + if (coin.vin_left == coin.ref->vin.size()) { + coin = available_coins.back(); available_coins.pop_back(); } - } - tx.vout.resize(det_rand.randrange(10)+2); - for (auto& out : tx.vout) { - out.scriptPubKey = CScript() << CScriptNum(tx_counter) << OP_EQUAL; - out.nValue = 10 * COIN; + tx.vout.resize(det_rand.randrange(10)+2); + for (auto& out : tx.vout) { + out.scriptPubKey = CScript() << CScriptNum(tx_counter) << OP_EQUAL; + out.nValue = 10 * COIN; + } } ordered_coins.emplace_back(MakeTransactionRef(tx)); available_coins.emplace_back(ordered_coins.back(), tx_counter++); |