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

László Bodor updated TEZ-4649:
------------------------------
    Description: 
tested by:
{code}
 mvn clean install -Denforcer.skip=true -nsu -Dtest=TestAnalyzer#testWithATS 
-pl ./tez-tools/analyzers/job-analyzer -am
{code}

git bisected, and double-checked before and after this commit:
{code}
commit 03b5f1d68ed30d214d0a0aa3e6ec9fe67777372d
    TEZ-4636: Move to JDK-21+ (#418)
{code}

I discovered this issue while testing jersey upgrade in the scope of TEZ-4648
I'm afraid we don't run all the unit tests in case of a root pom.xml change 
either, otherwise TEZ-4636 PR (https://github.com/apache/tez/pull/418), should 
have shown this problem, which it hasn't (only TestRecovery)

bad (with JDK21 patch, on JDK21 locally):
 [^BAD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt] 

good (without JDK21 patch, on JDK17 locally):
 [^GOOD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt] 

important note: both good and bad contain this:
{code}
SEVERE: Failed to generate the schema for the JAX-B elements
javax.xml.bind.JAXBException: TimelineEntity and TimelineEntities has 
IllegalAnnotation
        at 
org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.ContextFactory.createContext(ContextFactory.java)
{code}
so this is not what makes the unit test fail (this red herring caused a few 
hours of useless investigation for me in TEZ-4648)


instead the problem might be:
{code}
2025-09-17 12:49:38,826 INFO  [qtp830449117-475] requests.applicationhistory 
(Slf4jRequestLogWriter.java:write(62)) - 127.0.0.1 - - [17/Sep/2025:10:49:38 
+0000] "GET 
/ws/v1/timeline/TEZ_TASK_ATTEMPT_ID?limit=100&primaryFilter=TEZ_DAG_ID:dag_1758106144809_0001_3&user.name=lbodor
 HTTP/1.1" 200 7438 "-" "Java/21.0.8"
2025-09-17 12:49:38,827 ERROR [Time-limited test] history.ATSImportTool 
(ATSImportTool.java:download(165)) - Exception in download
java.util.zip.ZipException: duplicate entry: part-1758106178826.json
        at 
java.base/java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:259)
        at 
org.apache.tez.history.ATSImportTool.downloadJSONArrayFromATS(ATSImportTool.java:265)
        at 
org.apache.tez.history.ATSImportTool.downloadData(ATSImportTool.java:233)
        at org.apache.tez.history.ATSImportTool.download(ATSImportTool.java:162)
        at org.apache.tez.history.ATSImportTool.run(ATSImportTool.java:350)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
        at org.apache.tez.history.ATSImportTool.process(ATSImportTool.java:464)
        at 
org.apache.tez.analyzer.TestAnalyzer.getDagInfo(TestAnalyzer.java:264)
        at org.apache.tez.analyzer.TestAnalyzer.verify(TestAnalyzer.java:252)
        at org.apache.tez.analyzer.TestAnalyzer.runTests(TestAnalyzer.java:391)
        at 
org.apache.tez.analyzer.TestAnalyzer.testWithATS(TestAnalyzer.java:355)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.lang.Thread.run(Thread.java:1583)
{code}


  was:
tested by:
{code}
 mvn clean install -Denforcer.skip=true -nsu -Dtest=TestAnalyzer#testWithATS 
-pl ./tez-tools/analyzers/job-analyzer -am
{code}

git bisected, and double-checked before and after this commit:
{code}
commit 03b5f1d68ed30d214d0a0aa3e6ec9fe67777372d
    TEZ-4636: Move to JDK-21+ (#418)
{code}

I discovered this issue while testing jersey upgrade in the scope of TEZ-4648
I'm afraid we don't run all the unit tests in case of a root pom.xml change 
either, otherwise TEZ-4636 PR (https://github.com/apache/tez/pull/418), should 
have shown this problem, which it hasn't (only TestRecovery)

bad (with JDK21 patch, on JDK21 locally):
 [^BAD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt] 

good (without JDK21 patch, on JDK17 locally):
 [^GOOD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt] 

important note: both good and bad contain this:
{code}
SEVERE: Failed to generate the schema for the JAX-B elements
javax.xml.bind.JAXBException: TimelineEntity and TimelineEntities has 
IllegalAnnotation
        at 
org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.ContextFactory.createContext(ContextFactory.java)
{code}
so this is not what makes the unit test fail (this red herring caused a few 
hours of useless investigation for me in TEZ-4648)


instead the problem might be:
{code}
2025-09-17 12:49:38,826 INFO  [qtp830449117-475] requests.applicationhistory 
(Slf4jRequestLogWriter.java:write(62)) - 127.0.0.1 - - [17/Sep/2025:10:49:38 
+0000] "GET 
/ws/v1/timeline/TEZ_TASK_ATTEMPT_ID?limit=100&primaryFilter=TEZ_DAG_ID:dag_1758106144809_0001_3&user.name=lbodor
 HTTP/1.1" 200 7438 "-" "Java/21.0.8"
2025-09-17 12:49:38,827 ERROR [Time-limited test] history.ATSImportTool 
(ATSImportTool.java:download(165)) - Exception in download
java.util.zip.ZipException: duplicate entry: part-1758106178826.json
        at 
java.base/java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:259)
        at 
org.apache.tez.history.ATSImportTool.downloadJSONArrayFromATS(ATSImportTool.java:265)
        at 
org.apache.tez.history.ATSImportTool.downloadData(ATSImportTool.java:233)
        at org.apache.tez.history.ATSImportTool.download(ATSImportTool.java:162)
        at org.apache.tez.history.ATSImportTool.run(ATSImportTool.java:350)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
        at org.apache.tez.history.ATSImportTool.process(ATSImportTool.java:464)
        at 
org.apache.tez.analyzer.TestAnalyzer.getDagInfo(TestAnalyzer.java:264)
        at org.apache.tez.analyzer.TestAnalyzer.verify(TestAnalyzer.java:252)
        at org.apache.tez.analyzer.TestAnalyzer.runTests(TestAnalyzer.java:391)
        at 
org.apache.tez.analyzer.TestAnalyzer.testWithATS(TestAnalyzer.java:355)
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
        at 
org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.lang.Thread.run(Thread.java:1583)
{code}

whereas in the good run


> Java21 upgrade has broken TestAnalyzer#testWithATS
> --------------------------------------------------
>
>                 Key: TEZ-4649
>                 URL: https://issues.apache.org/jira/browse/TEZ-4649
>             Project: Apache Tez
>          Issue Type: Improvement
>            Reporter: László Bodor
>            Priority: Major
>         Attachments: 
> BAD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt, 
> GOOD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt
>
>
> tested by:
> {code}
>  mvn clean install -Denforcer.skip=true -nsu -Dtest=TestAnalyzer#testWithATS 
> -pl ./tez-tools/analyzers/job-analyzer -am
> {code}
> git bisected, and double-checked before and after this commit:
> {code}
> commit 03b5f1d68ed30d214d0a0aa3e6ec9fe67777372d
>     TEZ-4636: Move to JDK-21+ (#418)
> {code}
> I discovered this issue while testing jersey upgrade in the scope of TEZ-4648
> I'm afraid we don't run all the unit tests in case of a root pom.xml change 
> either, otherwise TEZ-4636 PR (https://github.com/apache/tez/pull/418), 
> should have shown this problem, which it hasn't (only TestRecovery)
> bad (with JDK21 patch, on JDK21 locally):
>  [^BAD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt] 
> good (without JDK21 patch, on JDK17 locally):
>  [^GOOD_TEZ_4649_org.apache.tez.analyzer.TestAnalyzer-output.txt] 
> important note: both good and bad contain this:
> {code}
> SEVERE: Failed to generate the schema for the JAX-B elements
> javax.xml.bind.JAXBException: TimelineEntity and TimelineEntities has 
> IllegalAnnotation
>       at 
> org.apache.hadoop.yarn.server.applicationhistoryservice.webapp.ContextFactory.createContext(ContextFactory.java)
> {code}
> so this is not what makes the unit test fail (this red herring caused a few 
> hours of useless investigation for me in TEZ-4648)
> instead the problem might be:
> {code}
> 2025-09-17 12:49:38,826 INFO  [qtp830449117-475] requests.applicationhistory 
> (Slf4jRequestLogWriter.java:write(62)) - 127.0.0.1 - - [17/Sep/2025:10:49:38 
> +0000] "GET 
> /ws/v1/timeline/TEZ_TASK_ATTEMPT_ID?limit=100&primaryFilter=TEZ_DAG_ID:dag_1758106144809_0001_3&user.name=lbodor
>  HTTP/1.1" 200 7438 "-" "Java/21.0.8"
> 2025-09-17 12:49:38,827 ERROR [Time-limited test] history.ATSImportTool 
> (ATSImportTool.java:download(165)) - Exception in download
> java.util.zip.ZipException: duplicate entry: part-1758106178826.json
>       at 
> java.base/java.util.zip.ZipOutputStream.putNextEntry(ZipOutputStream.java:259)
>       at 
> org.apache.tez.history.ATSImportTool.downloadJSONArrayFromATS(ATSImportTool.java:265)
>       at 
> org.apache.tez.history.ATSImportTool.downloadData(ATSImportTool.java:233)
>       at org.apache.tez.history.ATSImportTool.download(ATSImportTool.java:162)
>       at org.apache.tez.history.ATSImportTool.run(ATSImportTool.java:350)
>       at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
>       at org.apache.tez.history.ATSImportTool.process(ATSImportTool.java:464)
>       at 
> org.apache.tez.analyzer.TestAnalyzer.getDagInfo(TestAnalyzer.java:264)
>       at org.apache.tez.analyzer.TestAnalyzer.verify(TestAnalyzer.java:252)
>       at org.apache.tez.analyzer.TestAnalyzer.runTests(TestAnalyzer.java:391)
>       at 
> org.apache.tez.analyzer.TestAnalyzer.testWithATS(TestAnalyzer.java:355)
>       at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>       at java.base/java.lang.reflect.Method.invoke(Method.java:580)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>       at 
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:299)
>       at 
> org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:293)
>       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
>       at java.base/java.lang.Thread.run(Thread.java:1583)
> {code}



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

Reply via email to