Catching exceptions to prevent ingest listeners from being called multiple times #91475
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.
If an exception is thrown from inside of the handler given to
IngestDocument::executePipeline
inIngestService::innerExecute
or inside the handler given toPipeline::execute
in `IngestDocument::executePipeline``, then the error listener will be called twice, resulting in log messages like these:Those log messages aren't harmful in themselves (and they are part of #90319 which prevents counters from going negative, causing serialization exceptions like #77973). But they do show that we're getting an unexpected exception while processing an exception, and we're not handling it correctly. This change catches that unexpected exception and deals with it.