mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-03 09:56:38 -05:00
Merge bitcoin/bitcoin#28108: test: fix intermittent failure in wallet_resendwallettransactions.py
e667bd68a1
test: fix intermittent failure in wallet_resendwallettransactions.py (Martin Zumsande) Pull request description: Fixes #28094 The test bumps the mocktime for ~2 weeks and then triggers eviction from the mempool. But this bump will also cause a new resubmit, and if the timing is such that this resubmit happens right after the eviction and before the check that the tx was evicted, the test can fail as in #28094: ``` node0 2023-07-17T21:31:23.809483Z (mocktime: 2023-08-02T09:46:27Z) [httpworker.1] [validation.cpp:267] [LimitMempoolSize] [mempool] Expired 2 transactions from the memory pool node0 2023-07-17T21:31:23.810079Z (mocktime: 2023-08-02T09:46:27Z) [scheduler] [wallet/wallet.h:895] [WalletLogPrintf] [default wallet] ResubmitWalletTransactions: resubmit 2 unconfirmed transactions node0 2023-07-17T21:31:23.810474Z (mocktime: 2023-08-02T09:46:27Z) [httpworker.2] [rpc/request.cpp:181] [parse] [rpc] ThreadRPCServer method=getmempoolentry user=__cookie__ 2023-07-17T21:31:23.811000Z TestFramework (ERROR): Assertion failed (...) AssertionError: No exception raised ``` Fix this by flushing out the current resubmit call before triggering mempool eviction. ACKs for top commit: MarcoFalke: Nice. lgtm ACKe667bd68a1
achow101: ACKe667bd68a1
jonatack: Light "this looks like the other tests in this file" ACKe667bd68a1
Tree-SHA512: 027c2177ecd8bea80ec388ec2564f8fcbc717efd2722304b16fc0e9fa7ad216af61977c4e360b8135de68586cf13b0aa729ffa4fa27bad655092c3a55f73933c
This commit is contained in:
commit
b3022af0e2
1 changed files with 6 additions and 2 deletions
|
@ -108,9 +108,13 @@ class ResendWalletTransactionsTest(BitcoinTestFramework):
|
|||
# Set correct m_best_block_time, which is used in ResubmitWalletTransactions
|
||||
node.syncwithvalidationinterfacequeue()
|
||||
|
||||
# Evict these txs from the mempool
|
||||
evict_time = block_time + 60 * 60 * DEFAULT_MEMPOOL_EXPIRY_HOURS + 5
|
||||
node.setmocktime(evict_time)
|
||||
# Flush out currently scheduled resubmit attempt now so that there can't be one right between eviction and check.
|
||||
with node.assert_debug_log(['resubmit 2 unconfirmed transactions']):
|
||||
node.setmocktime(evict_time)
|
||||
node.mockscheduler(60)
|
||||
|
||||
# Evict these txs from the mempool
|
||||
indep_send = node.send(outputs=[{node.getnewaddress(): 1}], inputs=[indep_utxo])
|
||||
node.getmempoolentry(indep_send["txid"])
|
||||
assert_raises_rpc_error(-5, "Transaction not in mempool", node.getmempoolentry, txid)
|
||||
|
|
Loading…
Add table
Reference in a new issue