cshannon opened a new pull request, #4679: URL: https://github.com/apache/accumulo/pull/4679
This change verifies that the tablets in a merge range form a linked list when merging to make sure the metadata is consistent. This closes #4651 I went through and added a lot of comments to the checks in the code as it is a bit confusing. The logic here mostly applies to the main branch as well but I will likely need to create a separate commit or do major work after this is merged because the no-chop merge changes moved things around a bit so this will not merge cleanly (the test should be fine). I can work on the updates for main in a separate branch before this is merged. **Note:** The fix is done but I'm marking this as a draft PR because the test needs some work. I was trying to write an IT for this and ran into a lot of issues when changing the metadata to be bad so the test would fail. The issue is the merge operation wouldn't reach the merge tablet code where the checks were being done because chop compactions before that didn't work. Basically the trying to break the metadata (no surprise) prevented the merge fate operation from making progress all the way to the MERGING state where the code to be tested is. To work around this, I came up the idea to have a custom Manager for the test that would mutate the metadata in a tablet to be bad (wrong prevEndRow) after the merge state was being set to MERGING so that we know it was ready to execute the code we wanted to test. This works great and now in the logs the proper exception is seen and it fails with the correct IllegalStateException because the tablets do not form a linked list. However, the merge operation currently just hangs because of this since fate operation doesn't complete. So, I'm not quite sure how to assert the correct error was thrown and to abort the merge after verifying it so the test completes. So any suggestions on the test would be helpful. The test is marked as @Disabled for now since it will hang. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
