-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failure resolver improvements #14148
Conversation
9d4de0a
to
90cfe67
Compare
60add96
to
33aede6
Compare
presto-verifier/src/main/java/com/facebook/presto/verifier/framework/QueryException.java
Outdated
Show resolved
Hide resolved
presto-verifier/src/main/java/com/facebook/presto/verifier/resolver/FailureResolverUtil.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@caithagoras This is quite useful addition. Would you update the commit message to add an explanation of how to enable individual resolvers?
Typos in the commit message:
- Sepaerate specfic resolver config into separate class.
->
- Separate specific resolver config into separate class.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Distinguish between control, test, and determinism analysis checksum
This is great. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Resolve checksum query compiler error instead of skipping it
This is very useful. Thanks. I feel that verifier is evolving into pretty sophisticated tool and therefore would benefit from having a documentation that calls out all the different features. There was an effort to build sucj documentation at some point. How would you feel about resurrecting that and pushing it forward?
@caithagoras Overall looks great. This is a nice set of useful functionalities. I only have some minor structural comments. I'm also thinking that release notes need to call out all the improvements being made and include links or inline instructions on how to disable individual resolvers. |
@mbasmanova Documentation in a separate PR: #14153 |
a09270d
to
9d950c9
Compare
@mbasmanova Comments addressed. Updated commit messages and release notes. |
Cluster connection failure and Presto query failure are two different types of QueryException. Separate them into 2 sub-classes of QueryException for better encapsulation. Remove unused method in AbstractVerification
This abstract implementation of FailureResolver made inconsistent assumption. It supports specifying the expected QueryStage in order for resolution to happen, but it exposes an abstract method resolveTestQueryFailure, which assumes test query are failed. Instead, we should be able to resolve checksum query failure as well. Also, update resolve message.
For each failure resolver, a configuration property is available to enable and disable the resolver, in the format of <name>.failure-resolver.enable, e.g. too-many-open-partitions.failure- resolver.enable. The failure resolvers can still be disabled altogether by failure-resolver.enabled. Also, - Do not require factory class for simple FailureResolver. - Simplify FailureResolverFactoryContext. - Seperate specfic resolver config into separate class.
Also, only resolve for control checksum failure.
Most of this PR is refactoring, with a few functional changes:
COMPILER_ERROR
. It is now marked asFAILED_RESOLVED
.COMPILER_ERROR
will now gets resolved; test and determinism analysis checksum query will not.