diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 081a238c08d..e4babd1262a 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -882,7 +882,7 @@ bool CWallet::MarkReplaced(const uint256& originalHash, const uint256& newHash) wtx.mapValue["replaced_by_txid"] = newHash.ToString(); - // Refresh mempool status without waiting for transactionRemovedFromMempool + // Refresh mempool status without waiting for transactionRemovedFromMempool or transactionAddedToMempool RefreshMempoolStatus(wtx, chain()); WalletBatch batch(GetDatabase()); diff --git a/test/functional/wallet_resendwallettransactions.py b/test/functional/wallet_resendwallettransactions.py index 52e0270f6c4..b3d02fbfc9e 100755 --- a/test/functional/wallet_resendwallettransactions.py +++ b/test/functional/wallet_resendwallettransactions.py @@ -89,6 +89,10 @@ class ResendWalletTransactionsTest(BitcoinTestFramework): if txids == [child_txid, txid]: break bumped = node.bumpfee(child_txid) + # The scheduler queue creates a copy of the added tx after + # send/bumpfee and re-adds it to the wallet (undoing the next + # removeprunedfunds). So empty the scheduler queue: + node.syncwithvalidationinterfacequeue() node.removeprunedfunds(child_txid) child_txid = bumped["txid"] entry_time = node.getmempoolentry(child_txid)["time"]