wallet: Fully process previous RPCs before accepting new ones#18840
wallet: Fully process previous RPCs before accepting new ones#18840maflcko wants to merge 1 commit intobitcoin:masterfrom
Conversation
|
I think the description of this change is misleading. With this change the wallet isn't just waiting to "fuly process previous RPCs" it's also waiting for the node to process it's own internal events, and is waiting for other external listeners like the GUI, the transaction index, p2p networking code, and other wallets that are loaded. I'm also not sure if the change reliably fixes the reported problem, or just fixes it by accidentally by adding a delay. How does SyncWithValidationInterfaceQueue() ensure the new transaction is added to the mempool? And could there be a more direct fix for the |
|
ok, closing then |
This is not about the new transaction, it is about the replaced transaction (
Sure, see #18842. But keep in mind that #18842 is less correct, as a transaction that is still in the mempool and has been marked as removed will never be correctly marked as in mempool again. |
|
I think something like this pull request could help with some (but not all) RPC request isolation issues like #9197 (comment) |
The wallet may process calls without waiting on the result and effects of previous calls. This causes failures in user scripts, because later RPCs may depend on the state changes from previous RPCs.
For example, the following might fail on current master:
Fixes #18831