Mas i1001 locationtest#1375
Merged
Merged
Conversation
There were some issues with the original test:
- Config changes to riak_core where put under default bucket properties, and so were not applied. In particular, although the test was run 3 times on different ring sizes, only the default ring size (64) was actually tested.
- In testing the genuine ring sizes, it was uncovered that the Ring9 test will fail on ring sizes other than 64.
- As the test did not wait for transfers, they were not a genuine system test, and there was potential for false success and false failure due to this. The test now waits for transfers to complete; but does so in a fairly cumbersome way as `rt:wait_until_transfers_complete/1` is not a reliable function (in particular when it is called before any transfers have started.
- After adding the wait for transfers, and correcting the vnode_inactivity_timeout, it was uncovered that there exists a race condition whereby a vnode may be simultaneously be exiting (triggered by a join) and be required (to receive a handoff). This could lead to transfers that got permanently stuck due to `Transfers: [{stopped,'[email protected]',6}]`. A timeout of 60s is sufficient to make the test relatively reliable, but significantly extends the time required to run the test.
martinsumner
added a commit
that referenced
this pull request
Jun 22, 2023
* Test reliability fix
There were some issues with the original test:
- Config changes to riak_core where put under default bucket properties, and so were not applied. In particular, although the test was run 3 times on different ring sizes, only the default ring size (64) was actually tested.
- In testing the genuine ring sizes, it was uncovered that the Ring9 test will fail on ring sizes other than 64.
- As the test did not wait for transfers, they were not a genuine system test, and there was potential for false success and false failure due to this. The test now waits for transfers to complete; but does so in a fairly cumbersome way as `rt:wait_until_transfers_complete/1` is not a reliable function (in particular when it is called before any transfers have started.
- After adding the wait for transfers, and correcting the vnode_inactivity_timeout, it was uncovered that there exists a race condition whereby a vnode may be simultaneously be exiting (triggered by a join) and be required (to receive a handoff). This could lead to transfers that got permanently stuck due to `Transfers: [{stopped,'[email protected]',6}]`. A timeout of 60s is sufficient to make the test relatively reliable, but significantly extends the time required to run the test.
* Update location.erl
* Add leave test
* Update leave test
* Update core_all
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.
Test v4 claim