Ruby created FLINK-33509: ---------------------------- Summary: flaky test testNodeAffinity() in InitTaskManagerDecoratorTest.java Key: FLINK-33509 URL: https://issues.apache.org/jira/browse/FLINK-33509 Project: Flink Issue Type: Bug Environment: Java 11 Reporter: Ruby
When applying Nondex to the test, the NodeSelectorRequirement object shows nondeterminism. When testing, we assume that requirement would be equal to expected_requirement, both of them are the instance of NodeSelectorRequirement object. The NodeSelectorRequirement object has three attributes, including key, operator, and values list. It is possible to get values list's elements in order `[blockedNode1, blockedNode2]`, while the expected result is `[blockedNode2, blockedNode1]` which is incorrect. The root cause appeared in line 56 of `KubernetesTaskManagerTestBase.java`. (flink-kubernetes/src/test/java/org/apache/flink/kubernetes/kubeclient/KubernetesTaskManagerTestBase.java) Here we define `BLOCKED_NODES` as a new `hashSet`. In `InitTaskManagerDecoratorTest.java`, when initializing the `expected_requirement` in the test, the values being passed was this`BLOCKED_NODES`, which is an **unordered Set**. Later, the code convert this **hashSet** into **arrayList**, which led to the unstable result of the values list. -- This message was sent by Atlassian Jira (v8.20.10#820010)