cshannon commented on PR #3640: URL: https://github.com/apache/accumulo/pull/3640#issuecomment-1657250149
@keith-turner - I spent some time today just looking at how to update metadata to avoid chop compactions for deletions of ranges in tables (I'll look at getting rid of splits after that). I have some stuff locally where i was just doing a lot of testing to understand how things work. I ran into one thing that I got stuck on and haven't had time to figure out what's going on so was wondering if you might have some insight to save me some time. There is an IT for row deletion already called DeleteRowsIT and there is a test called [testManyRows](https://github.com/apache/accumulo/blob/4ec6dd2054d6a588dfc5a9a5f139d32799c90e83/test/src/main/java/org/apache/accumulo/test/functional/DeleteRowsIT.java#L83) and it hangs when chop compactions are disabled. If you run that test against this branch it hangs when scanning inside the testSplit() method when it its verifying the deleted rows and gets to the metadata. Here is the thread dump from the client where it's stuck: ``` "junit-timeout-thread-3" #35 prio=5 os_prio=0 cpu=200.01ms elapsed=7.10s tid=0x00007f509c51c800 nid=0x17f17 waiting on condition [0x00007f506c1de000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park([email protected]/Native Method) - parking to wait for <0x00000000fb469f88> (a java.util.concurrent.FutureTask) at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194) at java.util.concurrent.FutureTask.awaitDone([email protected]/FutureTask.java:447) at java.util.concurrent.FutureTask.get([email protected]/FutureTask.java:190) at org.apache.accumulo.core.clientImpl.ScannerIterator.getNextBatch(ScannerIterator.java:179) at org.apache.accumulo.core.clientImpl.ScannerIterator.hasNext(ScannerIterator.java:111) at org.apache.accumulo.test.functional.DeleteRowsIT.testSplit(DeleteRowsIT.java:147) at org.apache.accumulo.test.functional.DeleteRowsIT.testManyRows(DeleteRowsIT.java:89) ``` What's interesting is there are no errors that I can see anywhere. I checked all the logs in the mini accumulo directory and there's no exceptions or anything in the Tablet server, Manager, etc logs so I'm not sure what's up. If you re-enable chop compactions by uncommenting out the code inside of `needsToBeChopped` in `MergeInfo` then everything is fine and the test passes using this branch. There is a comment in that method that says "During a delete, the block after the merge will be stretched to cover the deleted area. Therefore, it needs to be chopped" so I am wondering what exactly that means and if that's the issue here. -- 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]
