Review exception handling in ingest/bulk import

Open
#8,430 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
aws, java
Domain
backend, cloud

Research direction

Start by reading BulkImportStarterLambda, IngestTask, IngestJobQueueConsumer, and their shared IngestJobMessageHandler to trace how exceptions are handled and ingest jobs are tracked. Compare the required failure behavior in the starter lambda and ingest task, then identify a way to make the handling easier to verify. Done when failures are tracked and caught or rethrown appropriately in both contexts, with verification covering those behaviors.

Written by the indexing model from the issue text.

Description

bulk-import-module ingest-module
Description / Background

As part of the following PR we noticed some difficulties in determining the correctness of exception handling in the bulk import starter lambda and in ingest tasks:

We want to be confident that all failures in the bulk import starter lambda, and in ingest tasks, will both be tracked in the ingest job tracker, and will be either caught or rethrown as appropriate for its context. We would like to make this easier to verify if possible.

We would like to spend at most a day or so on this for this issue.

Technical Notes / Implementation Details

This is in BulkImportStarterLambda and IngestTask/IngestJobQueueConsumer.

Part of this is that they both share IngestJobMessageHandler, but they have different needs for handling exceptions. In the bulk import starter lambda, an uncaught exception will result in a single failed job, which can be retried by SQS. In the ingest task, a completely uncaught exception will stop the whole task.

Dominant language
Java
Stars
107
Forks
29
Avg merge
1d 33m
Merged PRs (30d)
115

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from gchq/sleeper

All issues in gchq/sleeper

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.