DAOS-17637 vos: support to mark corruption on object/{d,a}key
Sometimes. when rebuild, we may have not enough information to rebuild some object or {d,a}key. Under such case, we need to add some flags on the target, then subsequent operation, such as read data from such bad target can properly return errno to indicate some data lost. Otherwise it will cause sclient data corruption.
For such purpose, we introduce new VOS API: vos_obj_mark_corruption(). It allows server side caller to mark the specified object or {d,a}key as corrupted. Any subsequent online operation against such bad target, except discard, will get -DER_DATA_LOSS failure.
The user/admin can use ddb (rm) to remove corrupted target to release related space.
Steps for the author:
- [ ] Commit message follows the guidelines.
- [ ] Appropriate Features or Test-tag pragmas were used.
- [ ] Appropriate Functional Test Stages were run.
- [ ] At least two positive code reviews including at least one code owner from each category referenced in the PR.
- [ ] Testing is complete. If necessary, forced-landing label added and a reason added in a comment.
After all prior steps are complete:
- [ ] Gatekeeper requested (daos-gatekeeper added as a reviewer).
Ticket title is 'Support to mark corrupted object or key' Status is 'In Review' https://daosio.atlassian.net/browse/DAOS-17637
Test stage Unit Test with memcheck 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-16529/2/testReport/
Test stage Functional Hardware Medium Verbs Provider MD on SSD completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-16529/3/testReport/
EC_17/18 failed for DAOS-17656, not related with the patch.
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-16529/4/testReport/
Test stage Test RPMs on EL 8.6 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-16529/6/display/redirect
Test stage Test RPMs on EL 8.6 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-16529/7/display/redirect
Test stage Test RPMs on EL 8.6 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-16529/8/display/redirect
All required CI tests passed.
Ping reviewers, thanks!