mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-12 16:06:15 +00:00
Interim check in for EFE hang solution
This commit is contained in:
parent
37de3ddb46
commit
8b36eebe70
@ -21,6 +21,7 @@ package org.sleuthkit.autopsy.modules.embeddedfileextractor;
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Level;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
@ -29,10 +30,13 @@ import org.sleuthkit.autopsy.ingest.IngestModule.ProcessResult;
|
||||
import org.sleuthkit.autopsy.ingest.IngestJobContext;
|
||||
import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector;
|
||||
import net.sf.sevenzipjbinding.SevenZipNativeInitializationException;
|
||||
import org.sleuthkit.autopsy.apputils.ApplicationLoggers;
|
||||
import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.ingest.FileIngestModuleAdapter;
|
||||
import org.sleuthkit.autopsy.ingest.IngestModuleReferenceCounter;
|
||||
import org.sleuthkit.autopsy.modules.embeddedfileextractor.SevenZipExtractor.Archive;
|
||||
import org.sleuthkit.autopsy.threadutils.TaskRetryUtil;
|
||||
|
||||
/**
|
||||
* A file level ingest module that extracts embedded files from supported
|
||||
@ -47,6 +51,7 @@ import org.sleuthkit.autopsy.modules.embeddedfileextractor.SevenZipExtractor.Arc
|
||||
})
|
||||
public final class EmbeddedFileExtractorIngestModule extends FileIngestModuleAdapter {
|
||||
|
||||
private static final String TASK_RETRY_STATS_LOG_NAME = "task_retry_stats";
|
||||
//Outer concurrent hashmap with keys of JobID, inner concurrentHashmap with keys of objectID
|
||||
private static final ConcurrentHashMap<Long, ConcurrentHashMap<Long, Archive>> mapOfDepthTrees = new ConcurrentHashMap<>();
|
||||
private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter();
|
||||
@ -189,6 +194,8 @@ public final class EmbeddedFileExtractorIngestModule extends FileIngestModuleAda
|
||||
fileTaskExecutor.shutDown();
|
||||
if (refCounter.decrementAndGet(jobId) == 0) {
|
||||
mapOfDepthTrees.remove(jobId);
|
||||
Logger logger = ApplicationLoggers.getLogger(TASK_RETRY_STATS_LOG_NAME);
|
||||
logger.log(Level.INFO, String.format("total task retries: %d, total task timeouts: %d, total task failures: %d", TaskRetryUtil.getTotalTaskRetriesCount(), TaskRetryUtil.getTotalTaskTimeOutsCount(), TaskRetryUtil.getTotalFailedTasksCount()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@ import java.util.List;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ScheduledThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import org.sleuthkit.autopsy.apputils.ApplicationLoggers;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.ingest.IngestJobContext;
|
||||
import org.sleuthkit.autopsy.threadutils.TaskRetryUtil;
|
||||
@ -49,13 +50,14 @@ import org.sleuthkit.autopsy.threadutils.TaskRetryUtil;
|
||||
*/
|
||||
class FileTaskExecutor {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(FileTaskExecutor.class.getName());
|
||||
private static final int MIN_THREADS_IN_POOL = 4;
|
||||
private static final int MAX_THREADS_IN_POOL = Integer.MAX_VALUE;
|
||||
private static final String FILE_IO_TASK_THREAD_NAME = "file-io-executor-task-%d";
|
||||
private static final String FILE_EXISTS_TASK_DESC_FMT_STR = "Checking if %s already exists";
|
||||
private static final String MKDIRS_TASK_DESC_FMT_STR = "Making directory %s";
|
||||
private static final String NEW_FILE_TASK_DESC_FMT_STR = "Creating new file %s";
|
||||
private static final String FILE_EXISTS_TASK_DESC_FMT_STR = "Checking if %s already exists (case directory = %s)";
|
||||
private static final String MKDIRS_TASK_DESC_FMT_STR = "Making directory %s (case directory = %s)";
|
||||
private static final String NEW_FILE_TASK_DESC_FMT_STR = "Creating new file %s (case directory = %s)";
|
||||
private static final String FILE_OPS_LOG_NAME = "efe_file-ops";
|
||||
private static final Logger logger = ApplicationLoggers.getLogger(FILE_OPS_LOG_NAME);
|
||||
private final ScheduledThreadPoolExecutor executor;
|
||||
private final TaskTerminator terminator;
|
||||
|
||||
|
@ -218,8 +218,37 @@ public class TaskRetryUtil {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* RJCTODO
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static long getTotalTaskRetriesCount() {
|
||||
return totalTaskRetries.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* RJCTODO
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static long getTotalTaskTimeOutsCount() {
|
||||
return totalTaskTimeOuts.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* RJCTODO
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static long getTotalFailedTasksCount() {
|
||||
return totalFailedTasks.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Private contructor to prevent TaskRetryUtil object instantiation.
|
||||
*/
|
||||
private TaskRetryUtil() {
|
||||
// Private contructor to prevent TaskRetryUtil object instantiation.
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user