QA: Fix race condition in wallet_encryption test#16420
Merged
fanquake merged 1 commit intobitcoin:masterfrom Jul 19, 2019
Merged
QA: Fix race condition in wallet_encryption test#16420fanquake merged 1 commit intobitcoin:masterfrom
fanquake merged 1 commit intobitcoin:masterfrom
Conversation
Contributor
|
ACK 024ecd7, simple fix, one second shouldn't hurt. An alternative is to lower to 1 second the lock timeout in line 48: self.nodes[0].walletpassphrase(passphrase, 1)A more robust alternative is to:
|
Member
|
ACK 024ecd7 |
fanquake
approved these changes
Jul 19, 2019
fanquake
added a commit
that referenced
this pull request
Jul 19, 2019
024ecd7 QA: Fix race condition in wallet_encryption test (Jonas Schnelli) Pull request description: There is some imprecision probably in the internal HTTPRPCTimer class (haven't exactly figured out where). But we can't expect that waiting excatly 2 seconds right after calling `walletpassphrase(2)` will result in a locked wallet due to the nature how we internally handle threads/timers. The wallet_encryption test fails regularely in CIs. Here is a logged session: ```shell �[0;34m node0 2019-07-18T18:51:22.569739Z [] ThreadRPCServer method=walletpassphrase user=__cookie__ �[0m �[0;34m node0 2019-07-18T18:51:22.628656Z [] queue run of timer lockwallet() in 2 seconds (using HTTP) �[0m �[0;34m node0 2019-07-18T18:51:22.629002Z [] Received a POST request for / from 127.0.0.1:46898 �[0m �[0;34m node0 2019-07-18T18:51:22.629081Z [] ThreadRPCServer method=dumpprivkey user=__cookie__ �[0m �[0;34m node0 2019-07-18T18:51:24.445620Z [] Flushing wallet.dat �[0m �[0;34m node0 2019-07-18T18:51:24.451421Z [] Flushed wallet.dat 6ms �[0m �[0;34m node0 2019-07-18T18:51:24.631703Z [] Received a POST request for / from 127.0.0.1:46898 �[0m �[0;34m node0 2019-07-18T18:51:24.631737Z [] ThreadRPCServer method=dumpprivkey user=__cookie__ �[0m �[0;36m test 2019-07-18T18:51:24.632000Z TestFramework (ERROR): Assertion failed �[0m �[0;36m Traceback (most recent call last):�[0m �[0;36m File "/home/ubuntu/src/test/functional/test_framework/test_framework.py", line 193, in main�[0m �[0;36m self.run_test()�[0m �[0;36m File "/home/ubuntu/src/test/functional/wallet_encryption.py", line 53, in run_test�[0m �[0;36m assert_raises_rpc_error(-13, "Please enter the wallet passphrase with walletpassphrase first", self.nodes[0].dumpprivkey, address)�[0m ``` ACKs for top commit: promag: ACK 024ecd7, simple fix, one second shouldn't hurt. MarcoFalke: ACK 024ecd7 fanquake: ACK 024ecd7 Tree-SHA512: 0cda1b8969b084bb765d2b35e90a8611c565ee458a7be1f2dde675f8ddbd9b9e421514547a7683f836e2c996e0538eb66b8c5b935b5a81e9319fb2be27624374
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There is some imprecision probably in the internal HTTPRPCTimer class (haven't exactly figured out where).
But we can't expect that waiting excatly 2 seconds right after calling
walletpassphrase(2)will result in a locked wallet due to the nature how we internally handle threads/timers.The wallet_encryption test fails regularely in CIs.
Here is a logged session: