Datapipe State Transition Hardening and ADCS Post Processing Fixes #363
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This adds an ingest task lookup before transitioning file upload jobs from the
INGESTING
state to theANALYZING
state. There is a potential race where a job may transition intoINGESTING
afteringestAvailableTasks(...)
is called. In this rare case, ingest tasks would remain until the next datapipe loop tick. Upon ingestion of the remaining tasks analysis would not be triggered, leaving the system in a inconsistent state until the next analysis run.Additionally, this changeset contains a change in the ADCS post-processing logic that defers creation of a parallel operation context. The functions that previously ran between creation of the parallel operation context would spin up their own parallel operation contexts resulting in creation of 12+ concurrent connections to the database. The system is designed to limit concurrent connections to 10 leaving some of the parallel operations hung until their association context is canceled.
Motivation and Context
State transition hardening will ensure there are no graph inconsistency gaps. The ADCS post-processing change will increase resiliency of the associated parallel operation code paths.
How Has This Been Tested?
Minor changes are covered by existing integration tests.
Types of changes
Checklist: