DAOS-11890 vos: Process removals to merge adjacent minor epoch extents
Minor epoch writes can cause errors when inserting removal records.
Modify the algorithm when finding records to remove to merge overlapping extents with the same minor epoch to avoid -DER_NO_PERM.
Replace the hack here with an assertion. Fix the evtree test so it fails when this happens (note, it would have failed if that fix were in place previously).
Required-githooks: true
Signed-off-by: Jeff Olivier [email protected]
Before requesting gatekeeper:
- [ ] Two review approvals and any prior change requests have been resolved.
- [x] Testing is complete and all tests passed or there is a reason documented in the PR why it should be force landed and forced-landing tag is set.
- [x] Commit messages follows the guidelines outlined here.
- [x] Any tests skipped by the ticket being addressed have been run and passed in the PR.
Gatekeeper:
- [ ] You are the appropriate gatekeeper to be landing the patch.
- [ ] The PR has 2 reviews by people familiar with the code.
- [ ] Any appropriate watchers have had a chance to review the PR.
- [ ] Review comments are sufficiently resolved, particularly by prior reviewers that requested changes.
- [ ] Githooks were used. If not, there is a sufficient reason to move forward. Check copyrights if githooks were not used.
- [ ] Checkpatch issues are resolved. Pay particular attention to ones that will show up on future PRs.
- [ ] All builds have passed. Check non-required builds to ensure they don't indicate any problem such as a compiler warning on extraneous platforms.
- [ ] No new NLT or valgrind warnings. Check the classic view. This step should only matter if the build requires force landing.
- [ ] Ensure sufficent testing is done. Check feature pragmas and test tags. Check that tests skipped for the ticket are run and now pass with the changes.
- [ ] Quick-build or Quick-functional is not used.
- [ ] Pay attention to PRs that may affect compatibility between versions and ensure it has been addressed.
- [ ] Check the target branch. If it is master branch, should the PR go to a feature branch? If it is a release branch, does it have merge approval in the JIRA ticket.
- [ ] Check the commit message when landing. Check the standard here. Edit it to create a single commit. If necessary, ask submitter for a new summary.
Bug-tracker data: Ticket title is 'evt_remove_all can sometimes insert overlapping extents' Status is 'In Review' Labels: 'triaged' https://daosio.atlassian.net/browse/DAOS-11890
Test stage Unit Test on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10542/1/execution/node/625/log
Test stage NLT on EL 8 completed with status FAILURE. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/PR-10542/3/display/redirect
Test stage Unit Test on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10542/6/execution/node/619/log
Test stage Unit Test with memcheck on EL 8 completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10542/6/execution/node/626/log
Test stage Functional Hardware Large completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10542/7/execution/node/1091/log