[
https://issues.apache.org/jira/browse/HDDS-16934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wei-Chiu Chuang updated HDDS-16934:
-----------------------------------
Fix Version/s: 2.3.0
Resolution: Fixed
Status: Resolved (was: Patch Available)
> Intermittent failure in
> TestSCMNodeManager#testDatanodeFinalizedCounterExcludesNonHealthyNodes
> ----------------------------------------------------------------------------------------------
>
> Key: HDDS-16934
> URL: https://issues.apache.org/jira/browse/HDDS-16934
> Project: Apache Ozone
> Issue Type: Sub-task
> Components: SCM, test
> Reporter: Siyao Meng
> Assignee: Siyao Meng
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.3.0
>
>
> {code}
> [ERROR]
> org.apache.hadoop.hdds.scm.node.TestSCMNodeManager.testDatanodeFinalizedCounterExcludesNonHealthyNodes(NodeStatus)[2]
> <<< FAILURE!
> org.opentest4j.AssertionFailedError: IN_SERVICE(no expiry)-DEAD node should
> be excluded from total count ==> expected: <1> but was: <0>
> {code}
> Observed locally, about once in seven runs, only for the DEAD parameter.
> h3. Root cause
> The test (added in HDDS-15034) sets the stale node interval to 3s and the
> dead node interval to 6s, and drives the node state with fixed
> {{Thread.sleep}} calls. In the DEAD case the last heartbeat of the baseline
> node is followed by {{Thread.sleep(3000)}}, so that heartbeat is at least 3s
> old when the assertions run. {{NodeStateManager#checkNodesHealth}} only
> treats a node as healthy when its last heartbeat is within the stale node
> interval. If the health check (100ms period) fires between the end of the
> sleep and the assertion, the baseline node itself is marked STALE and
> {{getTotalHealthyDatanodes()}} returns 0 instead of 1.
> Adding a 150ms sleep before the assertions makes the DEAD case fail every
> time, with the baseline node reported as STALE.
> h3. Fix
> Replace the fixed sleeps with {{GenericTestUtils.waitFor}} that keeps
> heartbeating the baseline node until the other node reaches the expected
> state, as other tests in the same class already do.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]