diff --git a/src/main/java/org/opensearch/performanceanalyzer/reader_writer_shared/EventLogFileHandler.java b/src/main/java/org/opensearch/performanceanalyzer/reader_writer_shared/EventLogFileHandler.java index 8370d06e7..2e2ac117a 100644 --- a/src/main/java/org/opensearch/performanceanalyzer/reader_writer_shared/EventLogFileHandler.java +++ b/src/main/java/org/opensearch/performanceanalyzer/reader_writer_shared/EventLogFileHandler.java @@ -182,7 +182,11 @@ private void readInternal(Path pathToFile, int bufferSize, EventDispatcher proce } public void deleteAllFiles() { - LOG.debug("Cleaning up any leftover files."); + Util.invokePrivileged(this::deleteAllFilesWithPrivilege); + } + + public void deleteAllFilesWithPrivilege() { + LOG.debug("Cleaning up any leftover files in [{}]", metricsLocation); File root = new File(metricsLocation); String[] filesToDelete = root.list(); if (filesToDelete == null) { @@ -202,7 +206,7 @@ public void deleteFiles(List filesToDelete) { File root = new File(metricsLocation); for (String fileToDelete : filesToDelete) { File file = new File(root, fileToDelete); - PerformanceAnalyzerMetrics.removeMetrics(file); + removeFilesWithPrivilege(file); filesDeletedCount += 1; } long duration = System.currentTimeMillis() - startTime; @@ -212,4 +216,8 @@ public void deleteFiles(List filesToDelete) { WriterMetrics.EVENT_LOG_FILES_DELETED, "", filesDeletedCount); LOG.debug("'{}' Old writer files cleaned up.", filesDeletedCount); } + + public void removeFilesWithPrivilege(File file) { + Util.invokePrivileged(() -> PerformanceAnalyzerMetrics.removeMetrics(file)); + } }