TEZ-4559: Fix Retry logic in case of Recovery #353
Merged
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.
Some unit tests were broken by TEZ-4543, where we simply returned a failed DAG if the requested DAG status cannot be found. This completely breaks recovery scenarios where the dagClient might keep asking for the failed DAGs status (while the AM restarts after a failure).
Considering recovery works, the client should simply consider if recovery is enabled and behave accordingly. This patch reverts the behavior in case of recovery to pre-TEZ-4543, but if there is no recovery, TEZ-4543 is a fair assumption and still makes the client able to return much faster in case of the specialized exception implying that the DAG is already lost.
Unit tests have been run manually with this patch: TestDAGRecovery, TestAMRecovery, TestRecovery