ableegoldman commented on a change in pull request #9262: URL: https://github.com/apache/kafka/pull/9262#discussion_r491108548
########## File path: streams/src/main/java/org/apache/kafka/streams/processor/internals/StateDirectory.java ########## @@ -306,59 +305,69 @@ public synchronized void clean() { */ public synchronized void cleanRemovedTasks(final long cleanupDelayMs) { try { - cleanRemovedTasks(cleanupDelayMs, false); + cleanRemovedTasksCalledByCleanerThread(cleanupDelayMs); } catch (final Exception cannotHappen) { throw new IllegalStateException("Should have swallowed exception.", cannotHappen); } } - private synchronized void cleanRemovedTasks(final long cleanupDelayMs, - final boolean manualUserCall) throws Exception { - final File[] taskDirs = listAllTaskDirectories(); - if (taskDirs == null || taskDirs.length == 0) { - return; // nothing to do - } - - for (final File taskDir : taskDirs) { + private void cleanRemovedTasksCalledByCleanerThread(final long cleanupDelayMs) { + for (final File taskDir : listAllTaskDirectories()) { final String dirName = taskDir.getName(); final TaskId id = TaskId.parse(dirName); if (!locks.containsKey(id)) { - Exception exception = null; try { if (lock(id)) { final long now = time.milliseconds(); final long lastModifiedMs = taskDir.lastModified(); if (now > lastModifiedMs + cleanupDelayMs) { log.info("{} Deleting obsolete state directory {} for task {} as {}ms has elapsed (cleanup delay is {}ms).", logPrefix(), dirName, id, now - lastModifiedMs, cleanupDelayMs); - - Utils.delete(taskDir, Collections.singletonList(new File(taskDir, LOCK_FILE_NAME))); - } else if (manualUserCall) { Review comment: That's what Bruno originally did, but the original `cleanRemovedTasks` method branched on the `manualUserCall` flag in several places and was pretty difficult to follow (imo). So (also imo) it's cleaner to split it up into two methods that make it clear what the expected behavior is in each case. Just my 2 cents ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org