jsancio commented on a change in pull request #10431: URL: https://github.com/apache/kafka/pull/10431#discussion_r631549244
########## File path: raft/src/main/java/org/apache/kafka/snapshot/Snapshots.java ########## @@ -104,18 +105,29 @@ public static Path createTempFile(Path logDir, OffsetAndEpoch snapshotId) throws } /** - * Delete the snapshot from the filesystem, the caller may firstly rename snapshot file to - * ${file}.deleted, so we try to delete the file as well as the renamed file if exists. + * Delete the snapshot from the filesystem. */ - public static boolean deleteSnapshotIfExists(Path logDir, OffsetAndEpoch snapshotId) { - Path immutablePath = Snapshots.snapshotPath(logDir, snapshotId); - Path deletingPath = Snapshots.deleteRename(immutablePath, snapshotId); + public static boolean deleteIfExists(Path logDir, OffsetAndEpoch snapshotId) { + Path immutablePath = snapshotPath(logDir, snapshotId); + Path deletedPath = deleteRename(immutablePath, snapshotId); try { - return Files.deleteIfExists(immutablePath) | Files.deleteIfExists(deletingPath); + return Files.deleteIfExists(immutablePath) | Files.deleteIfExists(deletedPath); } catch (IOException e) { - log.error("Error deleting snapshot file " + deletingPath, e); + log.error("Error deleting snapshot files {} and {}", immutablePath, deletedPath, e); return false; } } + /** + * Mark a snapshot for deletion by renaming with the deleted suffix + */ + public static void markForDelete(Path logDir, OffsetAndEpoch snapshotId) { + Path immutablePath = snapshotPath(logDir, snapshotId); + Path deletedPath = deleteRename(immutablePath, snapshotId); + try { + Utils.atomicMoveWithFallback(immutablePath, deletedPath, false); + } catch (IOException e) { + log.error("Error renaming snapshot file from {} to {}", immutablePath, deletedPath, e); Review comment: By changing it to `UncheckedIOExcpetion` this will unwind the stack for the polling thread. Tomorrow, I'll look into how we handle that case but it may already shutdown the broker and controller. -- 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