[
https://issues.apache.org/jira/browse/YARN-5566?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15439340#comment-15439340
]
Junping Du commented on YARN-5566:
----------------------------------
Hi [~rkanter], thanks for reporting this issue. Unhealthy state is not a
expected one in StatusUpdateWhenHealthyTransition if node's initial state is
decommissioning. I am not exactly sure how update changes like attached patch
could help here but there is indeed something wrong with our latest change.
First, I think this is a regression issue caused by YARN-4676
(https://github.com/apache/hadoop/commit/0da69c324dee9baab0f0b9700db1cc5b623f8421#diff-29befd5a1922a2121b26766561f9e447).
You can see we were removing the logic of detecting of app finish in
StatusUpdateWhenHealthyTransition. We should add it back (in branch-2.9).
I assume you do your test in bit of branch-2. Isn't it?
Another issue we should fix here (in either 2.8 or 2.9) is: if NM keep
reporting unhealthy after it is in decommissioning stage, then it will only
ends up as decommissioning without get chance to move to decommissioned.
{noformat}
if (!remoteNodeHealthStatus.getIsNodeHealthy()) {
LOG.info("Node " + rmNode.nodeId +
" reported UNHEALTHY with details: " +
remoteNodeHealthStatus.getHealthReport());
// if a node in decommissioning receives an unhealthy report,
// it will keep decommissioning.
if (isNodeDecommissioning) {
return NodeState.DECOMMISSIONING;
} else {
{noformat}
Instead of return NodeState.DECOMMISSIONING directly, we should also check
running apps on that node and return decommissioned if no running apps. Isn't?
> client-side NM graceful decom doesn't trigger when jobs finish
> --------------------------------------------------------------
>
> Key: YARN-5566
> URL: https://issues.apache.org/jira/browse/YARN-5566
> Project: Hadoop YARN
> Issue Type: Sub-task
> Components: nodemanager
> Affects Versions: 2.8.0
> Reporter: Robert Kanter
> Assignee: Robert Kanter
> Attachments: YARN-5566.001.patch
>
>
> I was testing the client-side NM graceful decommission and noticed that it
> was always waiting for the timeout, even if all jobs running on that node (or
> even the cluster) had already finished.
> For example:
> # JobA is running with at least one container on NodeA
> # User runs client-side decom on NodeA at 5:00am with a timeout of 3 hours
> --> NodeA enters DECOMMISSIONING state
> # JobA finishes at 6:00am and there are no other jobs running on NodeA
> # User's client reaches the timeout at 8:00am, and forcibly decommissions
> NodeA
> NodeA should have decommissioned at 6:00am.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]