mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-14 17:06:16 +00:00
Fix for completed jobs always being in error.
This commit is contained in:
parent
4b743c0ab6
commit
b34f4ad955
@ -208,13 +208,14 @@ public final class AutoIngestJob implements Comparable<AutoIngestJob>, Serializa
|
|||||||
* is set when the stage is set.
|
* is set when the stage is set.
|
||||||
*
|
*
|
||||||
* @param newStage The processing stage.
|
* @param newStage The processing stage.
|
||||||
|
* @param stageStartDate The date and time this stage started.
|
||||||
*/
|
*/
|
||||||
synchronized void setProcessingStage(Stage newStage) {
|
synchronized void setProcessingStage(Stage newStage, Date stageStartDate) {
|
||||||
if (Stage.CANCELLING == this.stage && Stage.COMPLETED != newStage) {
|
if (Stage.CANCELLING == this.stage && Stage.COMPLETED != newStage) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.stage = newStage;
|
this.stage = newStage;
|
||||||
this.stageStartDate = Date.from(Instant.now());
|
this.stageStartDate = stageStartDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -319,7 +320,7 @@ public final class AutoIngestJob implements Comparable<AutoIngestJob>, Serializa
|
|||||||
* Cancels the job.
|
* Cancels the job.
|
||||||
*/
|
*/
|
||||||
synchronized void cancel() {
|
synchronized void cancel() {
|
||||||
setProcessingStage(Stage.CANCELLING);
|
setProcessingStage(Stage.CANCELLING, Date.from(Instant.now()));
|
||||||
cancelled = true;
|
cancelled = true;
|
||||||
errorsOccurred = true;
|
errorsOccurred = true;
|
||||||
if (null != dataSourceProcessor) {
|
if (null != dataSourceProcessor) {
|
||||||
@ -347,7 +348,7 @@ public final class AutoIngestJob implements Comparable<AutoIngestJob>, Serializa
|
|||||||
* the job.
|
* the job.
|
||||||
*/
|
*/
|
||||||
synchronized void setCompleted() {
|
synchronized void setCompleted() {
|
||||||
setProcessingStage(Stage.COMPLETED);
|
setProcessingStage(Stage.COMPLETED, Date.from(Instant.now()));
|
||||||
completed = true;
|
completed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -849,7 +849,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
if (null != ingestJob) {
|
if (null != ingestJob) {
|
||||||
IngestJob.DataSourceIngestModuleHandle moduleHandle = ingestJob.getSnapshot().runningDataSourceIngestModule();
|
IngestJob.DataSourceIngestModuleHandle moduleHandle = ingestJob.getSnapshot().runningDataSourceIngestModule();
|
||||||
if (null != moduleHandle) {
|
if (null != moduleHandle) {
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.CANCELLING_MODULE);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.CANCELLING_MODULE, Date.from(Instant.now()));
|
||||||
moduleHandle.cancel();
|
moduleHandle.cancel();
|
||||||
SYS_LOGGER.log(Level.INFO, "Cancelling {0} module for manifest {1}", new Object[]{moduleHandle.displayName(), currentJob.getManifest().getFilePath()});
|
SYS_LOGGER.log(Level.INFO, "Cancelling {0} module for manifest {1}", new Object[]{moduleHandle.displayName(), currentJob.getManifest().getFilePath()});
|
||||||
}
|
}
|
||||||
@ -1297,10 +1297,12 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
AutoIngestJob job = new AutoIngestJob(manifest);
|
AutoIngestJob job = new AutoIngestJob(manifest);
|
||||||
job.setCaseDirectoryPath(caseDirectoryPath);
|
job.setCaseDirectoryPath(caseDirectoryPath);
|
||||||
job.setProcessingStatus(AutoIngestJob.ProcessingStatus.COMPLETED);
|
job.setProcessingStatus(AutoIngestJob.ProcessingStatus.COMPLETED);
|
||||||
job.setProcessingStage(AutoIngestJob.Stage.COMPLETED);
|
job.setProcessingStage(AutoIngestJob.Stage.COMPLETED, nodeData.getCompletedDate());
|
||||||
job.setCompletedDate(nodeData.getCompletedDate());
|
job.setCompletedDate(nodeData.getCompletedDate());
|
||||||
job.setErrorsOccurred(true);
|
job.setErrorsOccurred(nodeData.getErrorsOccurred());
|
||||||
newCompletedJobsList.add(new AutoIngestJob(nodeData));
|
job.setPriority(nodeData.getPriority());
|
||||||
|
job.setNumberOfCrashes(nodeData.getNumberOfCrashes());
|
||||||
|
newCompletedJobsList.add(job);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Try to upgrade/update the coordination service node data for
|
* Try to upgrade/update the coordination service node data for
|
||||||
@ -1868,7 +1870,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
Path manifestPath = currentJob.getManifest().getFilePath();
|
Path manifestPath = currentJob.getManifest().getFilePath();
|
||||||
SYS_LOGGER.log(Level.INFO, "Started processing of {0}", manifestPath);
|
SYS_LOGGER.log(Level.INFO, "Started processing of {0}", manifestPath);
|
||||||
currentJob.setProcessingStatus(AutoIngestJob.ProcessingStatus.PROCESSING);
|
currentJob.setProcessingStatus(AutoIngestJob.ProcessingStatus.PROCESSING);
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.STARTING);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.STARTING, Date.from(Instant.now()));
|
||||||
currentJob.setProcessingHostName(AutoIngestManager.LOCAL_HOST_NAME);
|
currentJob.setProcessingHostName(AutoIngestManager.LOCAL_HOST_NAME);
|
||||||
updateCoordinationServiceNode(currentJob);
|
updateCoordinationServiceNode(currentJob);
|
||||||
setChanged();
|
setChanged();
|
||||||
@ -1990,7 +1992,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
if (AutoIngestUserPreferences.getSharedConfigEnabled()) {
|
if (AutoIngestUserPreferences.getSharedConfigEnabled()) {
|
||||||
Path manifestPath = currentJob.getManifest().getFilePath();
|
Path manifestPath = currentJob.getManifest().getFilePath();
|
||||||
SYS_LOGGER.log(Level.INFO, "Downloading shared configuration for {0}", manifestPath);
|
SYS_LOGGER.log(Level.INFO, "Downloading shared configuration for {0}", manifestPath);
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.UPDATING_SHARED_CONFIG);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.UPDATING_SHARED_CONFIG, Date.from(Instant.now()));
|
||||||
new SharedConfiguration().downloadConfiguration();
|
new SharedConfiguration().downloadConfiguration();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2008,7 +2010,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
private void verifyRequiredSevicesAreRunning() throws ServicesMonitorException, DatabaseServerDownException, KeywordSearchServerDownException {
|
private void verifyRequiredSevicesAreRunning() throws ServicesMonitorException, DatabaseServerDownException, KeywordSearchServerDownException {
|
||||||
Path manifestPath = currentJob.getManifest().getFilePath();
|
Path manifestPath = currentJob.getManifest().getFilePath();
|
||||||
SYS_LOGGER.log(Level.INFO, "Checking services availability for {0}", manifestPath);
|
SYS_LOGGER.log(Level.INFO, "Checking services availability for {0}", manifestPath);
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.CHECKING_SERVICES);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.CHECKING_SERVICES, Date.from(Instant.now()));
|
||||||
if (!isServiceUp(ServicesMonitor.Service.REMOTE_CASE_DATABASE.toString())) {
|
if (!isServiceUp(ServicesMonitor.Service.REMOTE_CASE_DATABASE.toString())) {
|
||||||
throw new DatabaseServerDownException("Case database server is down");
|
throw new DatabaseServerDownException("Case database server is down");
|
||||||
}
|
}
|
||||||
@ -2055,7 +2057,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
Manifest manifest = currentJob.getManifest();
|
Manifest manifest = currentJob.getManifest();
|
||||||
String caseName = manifest.getCaseName();
|
String caseName = manifest.getCaseName();
|
||||||
SYS_LOGGER.log(Level.INFO, "Opening case {0} for {1}", new Object[]{caseName, manifest.getFilePath()});
|
SYS_LOGGER.log(Level.INFO, "Opening case {0} for {1}", new Object[]{caseName, manifest.getFilePath()});
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.OPENING_CASE);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.OPENING_CASE, Date.from(Instant.now()));
|
||||||
/*
|
/*
|
||||||
* Acquire and hold a case name lock so that only one node at as
|
* Acquire and hold a case name lock so that only one node at as
|
||||||
* time can scan the output directory at a time. This prevents
|
* time can scan the output directory at a time. This prevents
|
||||||
@ -2168,7 +2170,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
|
|
||||||
DataSource dataSource = identifyDataSource(caseForJob);
|
DataSource dataSource = identifyDataSource(caseForJob);
|
||||||
if (null == dataSource) {
|
if (null == dataSource) {
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.COMPLETED);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.COMPLETED, Date.from(Instant.now()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2178,7 +2180,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
|
|
||||||
runDataSourceProcessor(caseForJob, dataSource);
|
runDataSourceProcessor(caseForJob, dataSource);
|
||||||
if (dataSource.getContent().isEmpty()) {
|
if (dataSource.getContent().isEmpty()) {
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.COMPLETED);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.COMPLETED, Date.from(Instant.now()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2223,7 +2225,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
Manifest manifest = currentJob.getManifest();
|
Manifest manifest = currentJob.getManifest();
|
||||||
Path manifestPath = manifest.getFilePath();
|
Path manifestPath = manifest.getFilePath();
|
||||||
SYS_LOGGER.log(Level.INFO, "Identifying data source for {0} ", manifestPath);
|
SYS_LOGGER.log(Level.INFO, "Identifying data source for {0} ", manifestPath);
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.IDENTIFYING_DATA_SOURCE);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.IDENTIFYING_DATA_SOURCE, Date.from(Instant.now()));
|
||||||
Path caseDirectoryPath = currentJob.getCaseDirectoryPath();
|
Path caseDirectoryPath = currentJob.getCaseDirectoryPath();
|
||||||
AutoIngestJobLogger jobLogger = new AutoIngestJobLogger(manifestPath, manifest.getDataSourceFileName(), caseDirectoryPath);
|
AutoIngestJobLogger jobLogger = new AutoIngestJobLogger(manifestPath, manifest.getDataSourceFileName(), caseDirectoryPath);
|
||||||
Path dataSourcePath = manifest.getDataSourcePath();
|
Path dataSourcePath = manifest.getDataSourcePath();
|
||||||
@ -2259,7 +2261,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
Manifest manifest = currentJob.getManifest();
|
Manifest manifest = currentJob.getManifest();
|
||||||
Path manifestPath = manifest.getFilePath();
|
Path manifestPath = manifest.getFilePath();
|
||||||
SYS_LOGGER.log(Level.INFO, "Adding data source for {0} ", manifestPath);
|
SYS_LOGGER.log(Level.INFO, "Adding data source for {0} ", manifestPath);
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.ADDING_DATA_SOURCE);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.ADDING_DATA_SOURCE, Date.from(Instant.now()));
|
||||||
UUID taskId = UUID.randomUUID();
|
UUID taskId = UUID.randomUUID();
|
||||||
DataSourceProcessorCallback callBack = new AddDataSourceCallback(caseForJob, dataSource, taskId);
|
DataSourceProcessorCallback callBack = new AddDataSourceCallback(caseForJob, dataSource, taskId);
|
||||||
DataSourceProcessorProgressMonitor progressMonitor = new DoNothingDSPProgressMonitor();
|
DataSourceProcessorProgressMonitor progressMonitor = new DoNothingDSPProgressMonitor();
|
||||||
@ -2424,7 +2426,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
Manifest manifest = currentJob.getManifest();
|
Manifest manifest = currentJob.getManifest();
|
||||||
Path manifestPath = manifest.getFilePath();
|
Path manifestPath = manifest.getFilePath();
|
||||||
SYS_LOGGER.log(Level.INFO, "Starting ingest modules analysis for {0} ", manifestPath);
|
SYS_LOGGER.log(Level.INFO, "Starting ingest modules analysis for {0} ", manifestPath);
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.ANALYZING_DATA_SOURCE);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.ANALYZING_DATA_SOURCE, Date.from(Instant.now()));
|
||||||
Path caseDirectoryPath = currentJob.getCaseDirectoryPath();
|
Path caseDirectoryPath = currentJob.getCaseDirectoryPath();
|
||||||
AutoIngestJobLogger jobLogger = new AutoIngestJobLogger(manifestPath, manifest.getDataSourceFileName(), caseDirectoryPath);
|
AutoIngestJobLogger jobLogger = new AutoIngestJobLogger(manifestPath, manifest.getDataSourceFileName(), caseDirectoryPath);
|
||||||
IngestJobEventListener ingestJobEventListener = new IngestJobEventListener();
|
IngestJobEventListener ingestJobEventListener = new IngestJobEventListener();
|
||||||
@ -2460,7 +2462,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
}
|
}
|
||||||
jobLogger.logAnalysisCompleted();
|
jobLogger.logAnalysisCompleted();
|
||||||
} else {
|
} else {
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.CANCELLING);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.CANCELLING, Date.from(Instant.now()));
|
||||||
currentJob.setErrorsOccurred(true);
|
currentJob.setErrorsOccurred(true);
|
||||||
AutoIngestAlertFile.create(caseDirectoryPath); // Do this first, it is more important than the case log
|
AutoIngestAlertFile.create(caseDirectoryPath); // Do this first, it is more important than the case log
|
||||||
jobLogger.logAnalysisCancelled();
|
jobLogger.logAnalysisCancelled();
|
||||||
@ -2523,7 +2525,7 @@ public final class AutoIngestManager extends Observable implements PropertyChang
|
|||||||
Manifest manifest = currentJob.getManifest();
|
Manifest manifest = currentJob.getManifest();
|
||||||
Path manifestPath = manifest.getFilePath();
|
Path manifestPath = manifest.getFilePath();
|
||||||
SYS_LOGGER.log(Level.INFO, "Exporting files for {0}", manifestPath);
|
SYS_LOGGER.log(Level.INFO, "Exporting files for {0}", manifestPath);
|
||||||
currentJob.setProcessingStage(AutoIngestJob.Stage.EXPORTING_FILES);
|
currentJob.setProcessingStage(AutoIngestJob.Stage.EXPORTING_FILES, Date.from(Instant.now()));
|
||||||
Path caseDirectoryPath = currentJob.getCaseDirectoryPath();
|
Path caseDirectoryPath = currentJob.getCaseDirectoryPath();
|
||||||
AutoIngestJobLogger jobLogger = new AutoIngestJobLogger(manifestPath, manifest.getDataSourceFileName(), caseDirectoryPath);
|
AutoIngestJobLogger jobLogger = new AutoIngestJobLogger(manifestPath, manifest.getDataSourceFileName(), caseDirectoryPath);
|
||||||
try {
|
try {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user