-
Notifications
You must be signed in to change notification settings - Fork 340
DAOS-17535 chk: misc improvements for CR logic #17427
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Ticket title is 'DAOS checker cannot completed on Aurora after some engines excluded' |
|
Test stage Functional Hardware Medium MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17427/1/execution/node/1302/log |
|
Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17427/1/execution/node/1317/log |
562010a to
ed02f46
Compare
|
Test stage NLT on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-17427/3/testReport/ |
|
Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17427/3/execution/node/1283/log |
efa47b4 to
a944ece
Compare
|
Test stage NLT on EL 8.8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-17427/5/display/redirect |
a944ece to
3e235f3
Compare
|
Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17427/7/execution/node/1318/log |
|
Test stage Functional Hardware Medium MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17427/7/execution/node/1308/log |
e741d4e to
f684f3f
Compare
|
Test stage NLT on EL 8.8 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-17427/9/testReport/ |
|
Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17427/9/execution/node/1324/log |
|
Test stage Functional Hardware Medium MD on SSD completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-17427/9/execution/node/1314/log |
Include the followings: 1. When create CHK IV namespace, make the secondary group to be same as the primary group. Otherwise, CHK logic may hit DER_NONEXIST trouble when communicate via IV. 2. Integrate CHK IV namespace create and destroy API, cleanup related logic, redefine the version. 3. Get ranks list and IV namespace version from CHK leader when rejoin. Adjust CHK_REJOIN RPC for related changes. 4. Remove unsupported functionality for checking the specified 'phase'. 5. Add new test for case of lost some engine(s) before start checker. 6. Dedicated ULT to handle dead rank event, that will not be affected by checker start or stop. Then even if check scheduler exited, the subsequent check query still can work against the latest rank list. Test-tag: recovery Signed-off-by: Fan Yong <[email protected]>
f684f3f to
ae6132f
Compare
| pool: | ||
| scm_size: 6G | ||
| nvme_size: 80G |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to specify these individually or could we just specify size: and let DAOS use the default ratio?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried with size: 180G, but failed to create the pool during CI test because of size trouble.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that the issue is from test_setup_pool_create() that is used for most of tests under suite. Similar configuration in src/tests/ftest/daos_test/suite.yaml.
|
Ping reviewers, this patch is important for 2.8 release, please help to view, thanks! |
|
All required CR tests have passed. |
| */ | ||
|
|
||
| bool | ||
| d_rank_list_bsearch(d_rank_list_t *rank_list, d_rank_t rank, int *idx) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why don't you just replace the d_rank_list_find() with this implementation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
d_rank_list_find is used for finding rank in any rank list in spite of sorted or not. If I replace it but the caller does not sort related rank list before calling it, then the result will be wrong. So I create new API d_rank_list_bsearch() that is only used for the sorted rank list.
| ci_starting : 1, ci_stopping : 1, ci_started : 1, ci_inited : 1, ci_pause : 1, | ||
| ci_skip_oog : 1, ci_rejoining : 1, ci_implicated : 1; | ||
| uint32_t ci_start_flags; | ||
| uint32_t ci_ns_ver; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really don't like the auto-change like this...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Me too, but clang-format require that by force. That is one of the reason for the huge patch.
| } | ||
|
|
||
| D_ASSERT(rank_list != NULL); | ||
| if (ins->ci_ranks == NULL) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there other non-leader case that we can see ci_ranks == NULL?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before the first time starting CR, the list will be empty.
| } | ||
| } | ||
|
|
||
| if (unlikely(ins->ci_ranks == NULL)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so we don't need the "if" anymore, since we just created it, or chk_prop_fetch can still return NULL in non-failure case?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If CR has never run before, then rank list will be empty.
Include the followings:
When create CHK IV namespace, make the secondary group to be same as the primary group. Otherwise, CHK logic may hit DER_NONEXIST trouble when communicate via IV.
Integrate CHK IV namespace create and destroy API, cleanup related logic, redefine the version.
Get ranks list and IV namespace version from CHK leader when rejoin. Adjust CHK_REJOIN RPC for related changes.
Remove unsupported functionality for checking the specified 'phase'.
Add new test for case of lost some engine(s) before start checker.
Dedicated ULT to handle dead rank event, that will not be affected by checker start or stop. Then even if check scheduler exited, the subsequent check query still can work against the latest rank list.
Test-tag: recovery
Steps for the author:
After all prior steps are complete: