You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Steve Loughran (Jira)" <ji...@apache.org> on 2023/03/06 15:48:00 UTC

[jira] [Resolved] (HDFS-16934) org.apache.hadoop.hdfs.tools.TestDFSAdmin#testAllDatanodesReconfig regression

     [ https://issues.apache.org/jira/browse/HDFS-16934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Loughran resolved HDFS-16934.
-----------------------------------
    Fix Version/s: 3.4.0
                   3.3.5
       Resolution: Fixed

fixed; ran new test on 3.3.5 to verify the backport/conflict resolution was ok.

> org.apache.hadoop.hdfs.tools.TestDFSAdmin#testAllDatanodesReconfig regression
> -----------------------------------------------------------------------------
>
>                 Key: HDFS-16934
>                 URL: https://issues.apache.org/jira/browse/HDFS-16934
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: dfsadmin, test
>    Affects Versions: 3.4.0, 3.3.5, 3.3.9
>            Reporter: Steve Loughran
>            Assignee: Shilun Fan
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 3.4.0, 3.3.5
>
>
> jenkins test failure as the logged output is in the wrong order for the assertions. HDFS-16624 flipped the order...without that this would have worked.
> {code}
> java.lang.AssertionError
> 	at org.junit.Assert.fail(Assert.java:87)
> 	at org.junit.Assert.assertTrue(Assert.java:42)
> 	at org.junit.Assert.assertTrue(Assert.java:53)
> 	at org.apache.hadoop.hdfs.tools.TestDFSAdmin.testAllDatanodesReconfig(TestDFSAdmin.java:1149)
> {code}
> Here the code is asserting about the contents of the output, 
> {code}
>     assertTrue(outs.get(0).startsWith("Reconfiguring status for node"));
>     assertTrue("SUCCESS: Changed property dfs.datanode.peer.stats.enabled".equals(outs.get(2))
>         || "SUCCESS: Changed property dfs.datanode.peer.stats.enabled".equals(outs.get(1)));  // here
>     assertTrue("\tFrom: \"false\"".equals(outs.get(3)) || "\tFrom: \"false\"".equals(outs.get(2)));
>     assertTrue("\tTo: \"true\"".equals(outs.get(4)) || "\tTo: \"true\"".equals(outs.get(3)))
> {code}
> If you look at the log, the actual line is appearing in that list, just in a different place. race condition
> {code}
> 2023-02-24 01:02:06,275 [Listener at localhost/41795] INFO  tools.TestDFSAdmin (TestDFSAdmin.java:testAllDatanodesReconfig(1146)) - dfsadmin -status -livenodes output:
> 2023-02-24 01:02:06,276 [Listener at localhost/41795] INFO  tools.TestDFSAdmin (TestDFSAdmin.java:lambda$testAllDatanodesReconfig$0(1147)) - Reconfiguring status for node [127.0.0.1:41795]: started at Fri Feb 24 01:02:03 GMT 2023 and finished at Fri Feb 24 01:02:03 GMT 2023.
> 2023-02-24 01:02:06,276 [Listener at localhost/41795] INFO  tools.TestDFSAdmin (TestDFSAdmin.java:lambda$testAllDatanodesReconfig$0(1147)) - Reconfiguring status for node [127.0.0.1:34007]: started at Fri Feb 24 01:02:03 GMT 2023SUCCESS: Changed property dfs.datanode.peer.stats.enabled
> 2023-02-24 01:02:06,277 [Listener at localhost/41795] INFO  tools.TestDFSAdmin (TestDFSAdmin.java:lambda$testAllDatanodesReconfig$0(1147)) - 	From: "false"
> 2023-02-24 01:02:06,277 [Listener at localhost/41795] INFO  tools.TestDFSAdmin (TestDFSAdmin.java:lambda$testAllDatanodesReconfig$0(1147)) - 	To: "true"
> 2023-02-24 01:02:06,277 [Listener at localhost/41795] INFO  tools.TestDFSAdmin (TestDFSAdmin.java:lambda$testAllDatanodesReconfig$0(1147)) -  and finished at Fri Feb 24 01:02:03 GMT 2023.
> 2023-02-24 01:02:06,277 [Listener at localhost/41795] INFO  tools.TestDFSAdmin (TestDFSAdmin.java:lambda$testAllDatanodesReconfig$0(1147)) - SUCCESS: Changed property dfs.datanode.peer.stats.enabled
> {code}
> we have a race condition in output generation and the assertions are clearly too brittle
> for the 3.3.5 release I'm not going to make this a blocker. What i will do is propose that the asserts move to assertJ with an assertion that the collection "containsExactlyInAnyOrder" all the strings.
> That will
> 1. not be brittle.
> 2. give nice errors on failure



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org