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]

Reply via email to