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
YARN-10536. Client in distributedShell swallows interrupt exceptions #2554
Conversation
💔 -1 overall
This message was automatically generated. |
The changes should be fine to merge. |
4704192
to
c0c7b39
Compare
💔 -1 overall
This message was automatically generated. |
return false; | ||
LOG.info("Application did not finish. YarnState={}, DSFinalStatus={}. " | ||
+ "Breaking monitoring loop", | ||
state.toString(), dsStatus.toString()); |
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.
No need for toString()
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.
Thanks @goiri ! I added a commit to get rid of the "toString()".
💔 -1 overall
This message was automatically generated. |
I don't think we broke the TestDistributedShell with this, did we? |
No, we didn't. Those two test cases were broken for almost a year |
While investigating YARN-10334 I found that in
applications.distributedshell.Client
, the methodmonitorApplication
loops waiting for the following conditions:YarnApplicationState.KILLED
, orYarnApplicationState.FAILED
FinalApplicationStatus.SUCCEEDED
orYarnApplicationState.FINISHED
clientTimeout
(if it exists in the parameters).When the Client thread is interrupted, it ignores the exception:
Also, the timeout will be measured against the object creation timestamp which is incorrect.