perf: reduced delays and syncs in functional tests to run faster#6268
Closed
knst wants to merge 7 commits intodashpay:developfrom
Closed
perf: reduced delays and syncs in functional tests to run faster#6268knst wants to merge 7 commits intodashpay:developfrom
knst wants to merge 7 commits intodashpay:developfrom
Conversation
8b44a6d to
cea2e3f
Compare
cea2e3f to
b8fc9cc
Compare
b8fc9cc to
595900c
Compare
…in functional tests It significantly improve speed of forks activation because reduces overhead for block generations Bigger batch size can cause time-outs for RPC for tsan job (time-out is 30 seconds)
356c142 to
e382dfc
Compare
e382dfc to
4f15417
Compare
Member
PastaPastaPasta
left a comment
There was a problem hiding this comment.
re-request with udjin applied
… to make sure quorums are mined correctly
|
Looks like we are getting different results here, my commit makes things a bit less stable for knst for some reason. @PastaPastaPasta pls confirm the issue (and that my commit actually helps). |
Collaborator
Author
on laptop udjin's patch continue to fail, but on PC (different kernel version, different hardware, same compiler) it doesn't fail that much. Let's see how CI behaves |
5 tasks
PastaPastaPasta
added a commit
that referenced
this pull request
Sep 25, 2024
…n faster 874ef8c fix: mine_quorum_no_checks -> mine_quorum_less_checks: do some checks to make sure quorums are mined correctly (UdjinM6) 4f636f4 fix: re-order functional tests: move governance to 60+seconds category (Konstantin Akimov) fe49f3f refactor: removed dead and commented code from test_framework.py (Konstantin Akimov) cd1958c perf: removed sleep(6) from mine_cycle_quorum in functional tests (Konstantin Akimov) 3f17a01 fix: bump mocktime in simplepose when generating blocks to improve robustness (Konstantin Akimov) 132d95e perf: remove sleep(1) from each step of quorum creation in functional tests (Konstantin Akimov) 4c57ad1 chore: increase batch size from 10 to 50 for faster block generation in functional tests (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Functional tests take too long time to run. (PR is recreated from #6268 because CI is broken) ## What was done? - increased robustness `feature_llmq_simplepose.py` by adding missing bump for mocktime during block generations - removed sleep(1) from each stage of mine_quorum - removed sleep(6) from final stage of mine_cycled_quorum - size of batch for block generation in `feature_asset_locks.py` and in `activate_fork_by_name()` increased from 10 blocks to 50 blocks - moved governance's functional tests to "60 seconds+" category because they always the last one to wait if running more than 10 jobs at once Plus extra refactoring which removes dead and commented code from test_framework.py ## How Has This Been Tested? Locally, the functional tests speed up with these fixes for 15% for overall time and 20% for accumulated time `test/functional/test_runner.py -j20` Before: ``` ALL | ✓ Passed | 7860 s (accumulated) Runtime: 481 s ``` After: ``` ALL | ✓ Passed | 6237 s (accumulated) Runtime: 416 s ``` --- CI tsan job speeds up for 5 minutes in absolute time (~5%) and 1000 seconds in accumulated time. ``` ALL | ✓ Passed | 23854 s (accumulated) Runtime: 6249 s ``` ↑ [old version](https://gitlab.com/dashpay/dash/-/jobs/7822664869) vs [new version](https://gitlab.com/dashpay/dash/-/jobs/7825461091) ↓ ``` ALL | ✓ Passed | 22901 s (accumulated) Runtime: 5962 s ``` ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: UdjinM6: utACK 874ef8c PastaPastaPasta: utACK 874ef8c Tree-SHA512: 514fa2fb32abd59c90f63b68fccc8c3d3b6d16b0b6ad7459c4a348825815e7d3012177565dea1f70b8a1f28ede1a297f91361365454d1be85955e77260451cf5
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Issue being fixed or feature implemented
Functional tests take too long time to run.
What was done?
feature_llmq_simplepose.pyby adding missing bump for mocktime during block generationsfeature_asset_locks.pyand inactivate_fork_by_name()increased from 10 blocks to 50 blocksPlus extra refactoring which removes dead and commented code from test_framework.py
How Has This Been Tested?
Locally, the functional tests speed up with these fixes for 15% for overall time and 20% for accumulated time
test/functional/test_runner.py -j20Before:
After:
CI tsan job speeds up for 5 minutes in absolute time (~5%) and 1000 seconds in accumulated time.
↑ old version vs new version ↓
Breaking Changes
N/A
Checklist: