dlmarion commented on issue #5393: URL: https://github.com/apache/accumulo/issues/5393#issuecomment-2713830628
> Looking through the code, I only saw the check to cancel a compaction done after the iterator used to read input files returned a key/value. If that iterator is filtering and never returns anything, then that is one possible thing that could hold it up. Maybe the compaction thread also needs to be interrupted, we made some changes like that for the scan threads where they set an atomic boolean to cancel and try to interrupt the thread. Looking at the code below, the `CompactionEnv` is passed to the `FileCompactor` and checked as you said above. But there is also a background thread that will interrupt the `FileCompactor` if the compaction is no longer enabled. https://github.com/apache/accumulo/blob/9037d6112aced7c312a6cad31299809d83ae16e8/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/CompactableUtils.java#L557-L585 > I modified the test in https://github.com/apache/accumulo/pull/5395 to sleep for 300 seconds instead of 3 seconds in the slow iterator to simulate an iterator filtering and not returning data. With that change the test times out and fails. I'm wondering if you should set the Manager goal state to SAFE_MODE in the IT to simulate a shutdown and unloading of user tablets. Also, I'm seeing in the `SlowIterator` that it's swallowing the `InterruptedException`, but setting the Thread's interrupted state, then calling next or seek. We are assuming that some other code is checking the Thread state, but it doesn't look like it's happening in this case. `FileCompactor.call` handles an `IterationInterruptedException`, maybe we should be throwing it in more places. From what I can tell looking at `TabletIteratorEnv.getTopLevelIterator`, the `MultiIterator` is the top-level iterator and it's not checking the Thread interrupt state. -- 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: notifications-unsubscr...@accumulo.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org