Github user zd-project commented on a diff in the pull request: https://github.com/apache/storm/pull/2754#discussion_r209305519 --- Diff: storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/LogCleaner.java --- @@ -142,30 +154,41 @@ public void run() { oldLogDirs.stream().map(File::getName).collect(joining(",")), deadWorkerDirs.stream().map(File::getName).collect(joining(","))); - deadWorkerDirs.forEach(Unchecked.consumer(dir -> { + for (File dir : deadWorkerDirs) { String path = dir.getCanonicalPath(); - LOG.info("Cleaning up: Removing {}", path); + long size = FileUtils.sizeOf(dir); + LOG.info("Cleaning up: Removing {}, {} KB", path, size * 1e-3); try { Utils.forceDelete(path); cleanupEmptyTopoDirectory(dir); + numFilesCleaned++; + diskSpaceCleaned += size; } catch (Exception ex) { + ExceptionMeters.NUM_FILE_REMOVAL_EXCEPTIONS.mark(); LOG.error(ex.getMessage(), ex); } - })); + } - perWorkerDirCleanup(maxPerWorkerLogsSizeMb * 1024 * 1024); - globalLogCleanup(maxSumWorkerLogsSizeMb * 1024 * 1024); + final List<DirectoryCleaner.DeletionMeta> perWorkerDirCleanupMeta = perWorkerDirCleanup(maxPerWorkerLogsSizeMb * 1024 * 1024); + numFilesCleaned += perWorkerDirCleanupMeta.stream().mapToInt(meta -> meta.deletedFiles).sum(); + diskSpaceCleaned += perWorkerDirCleanupMeta.stream().mapToLong(meta -> meta.deletedSize).sum(); + final DirectoryCleaner.DeletionMeta globalLogCleanupMeta = globalLogCleanup(maxSumWorkerLogsSizeMb * 1024 * 1024); + numFilesCleaned += globalLogCleanupMeta.deletedFiles; + diskSpaceCleaned += globalLogCleanupMeta.deletedSize; } catch (Exception ex) { + ExceptionMeters.NUM_CLEANUP_EXCEPTIONS.mark(); LOG.error("Exception while cleaning up old log.", ex); } + numFilesCleanedUp.update(numFilesCleaned); + diskSpaceFreed.update(diskSpaceCleaned); } /** * Delete the oldest files in each overloaded worker log dir. */ @VisibleForTesting - List<Integer> perWorkerDirCleanup(long size) { + List<DirectoryCleaner.DeletionMeta> perWorkerDirCleanup(long size) { --- End diff -- Okay.
---