Skip to content

TEZ-4685: DagAppMaster is not picking tez-site.xml from classpath in zookeeper mode - #458

Closed
Aggarwal-Raghav wants to merge 1 commit into
apache:masterfrom
Aggarwal-Raghav:TEZ-4685
Closed

TEZ-4685: DagAppMaster is not picking tez-site.xml from classpath in zookeeper mode#458
Aggarwal-Raghav wants to merge 1 commit into
apache:masterfrom
Aggarwal-Raghav:TEZ-4685

Conversation

@Aggarwal-Raghav

Copy link
Copy Markdown
Contributor

Please check screenshots in TEZ-4685

@tez-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 22sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
-1 ❌test4tests0m 0sThe patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+1 💚mvninstall8m 56smaster passed
+1 💚compile0m 24smaster passed
+1 💚checkstyle0m 51smaster passed
+1 💚javadoc0m 24smaster passed
-1 ❌spotbugs1m 3s/branch-spotbugs-tez-dag.txttez-dag in master failed.
_ Patch Compile Tests _
+1 💚mvninstall0m 19sthe patch passed
+1 💚codespell0m 27sNo new issues.
+1 💚compile0m 18sthe patch passed
+1 💚javac0m 18sthe patch passed
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚checkstyle0m 11sthe patch passed
+1 💚javadoc0m 10sthe patch passed
-1 ❌spotbugs0m 17s/patch-spotbugs-tez-dag.txttez-dag in the patch failed.
_ Other Tests _
+1 💚unit5m 25stez-dag in the patch passed.
+1 💚asflicense0m 11sThe patch does not generate ASF License warnings.
20m 8s
SubsystemReport/Notes
DockerClientAPI=1.53 ServerAPI=1.53 base: https://ci-hadoop.apache.org/job/tez-multibranch/job/PR-458/1/artifact/out/Dockerfile
GITHUB PR#458
Optional Testsdupname asflicense javac javadoc unit spotbugs checkstyle codespell detsecrets compile
unameLinux cdb2f8f4b9fb 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-home/workspace/tez-multibranch_PR-458/src/.yetus/personality.sh
git revisionmaster / f2eba56
Default JavaUbuntu-21.0.9+10-Ubuntu-124.04
Test Resultshttps://ci-hadoop.apache.org/job/tez-multibranch/job/PR-458/1/testReport/
Max. process+thread count246 (vs. ulimit of 5500)
modulesC: tez-dag U: tez-dag
Console outputhttps://ci-hadoop.apache.org/job/tez-multibranch/job/PR-458/1/console
versionsgit=2.43.0 maven=3.8.7 codespell=2.4.1
Powered byApache Yetus 0.15.1 https://yetus.apache.org

This message was automatically generated.

@Aggarwal-RaghavAggarwal-Raghav changed the title TEZ-4685: DagAppMaster is not picking tez-site.xml from classpathTEZ-4685: DagAppMaster is not picking tez-site.xml from classpath in zookeeper modeFeb 18, 2026
@Aggarwal-Raghav

Copy link
Copy Markdown
ContributorAuthor

@ayushtkn / @abstractdog , I have updated the patch. Can you provide your feedback on this implementation?

@tez-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec14m 8sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
-1 ❌test4tests0m 0sThe patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ master Compile Tests _
+1 💚mvninstall11m 10smaster passed
+1 💚compile0m 45smaster passed
+1 💚checkstyle1m 5smaster passed
+1 💚javadoc0m 35smaster passed
+0 🆗spotbugs2m 28stez-dag in master has 749 extant spotbugs warnings.
_ Patch Compile Tests _
+1 💚mvninstall0m 32sthe patch passed
+1 💚codespell0m 57sNo new issues.
+1 💚compile0m 32sthe patch passed
+1 💚javac0m 32sthe patch passed
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚checkstyle0m 18sthe patch passed
+1 💚javadoc0m 13sthe patch passed
+1 💚spotbugs1m 49sthe patch passed
_ Other Tests _
+1 💚unit5m 33stez-dag in the patch passed.
+1 💚asflicense0m 12sThe patch does not generate ASF License warnings.
41m 36s
SubsystemReport/Notes
DockerClientAPI=1.53 ServerAPI=1.53 base: https://ci-hadoop.apache.org/job/tez-multibranch/job/PR-458/2/artifact/out/Dockerfile
GITHUB PR#458
Optional Testsdupname asflicense javac javadoc unit spotbugs checkstyle codespell detsecrets compile
unameLinux 2fa494d80081 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personality/home/jenkins/jenkins-agent/workspace/tez-multibranch_PR-458/src/.yetus/personality.sh
git revisionmaster / 80f79e8
Default JavaUbuntu-21.0.10+7-Ubuntu-124.04
Test Resultshttps://ci-hadoop.apache.org/job/tez-multibranch/job/PR-458/2/testReport/
Max. process+thread count238 (vs. ulimit of 5500)
modulesC: tez-dag U: tez-dag
Console outputhttps://ci-hadoop.apache.org/job/tez-multibranch/job/PR-458/2/console
versionsgit=2.43.0 maven=3.8.7 spotbugs=4.9.3 codespell=2.4.1
Powered byApache Yetus 0.15.1 https://yetus.apache.org

This message was automatically generated.

Comment on lines -2432 to +2436
Configuration conf = new Configuration();
Configuration conf =
STANDALONE_ZOOKEEPER.name().equals(System.getenv(TezConstants.TEZ_FRAMEWORK_MODE))
? new TezConfiguration()
: new Configuration();

@abstractdogabstractdogFeb 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be kept somehow in FrameworkUtils, like FrameworkUtils.getInitialConfiguration()
because we might want to hide the details of this "hack" from DAGAppMaster.

Why I call it a hack: it's not because the solution is bad, it's because of the current design, which leads to a catch-22:

  1. we need a Configuration
  2. for that we need to know the framework mode
  3. to know the framework mode and get framework client/server classes we need a Configuration object: getFrameworkService(conf)

so we cannot do anything better than to achieve original Configuration by the value stored in environment...which is fine, but DAGAppMaster's already overwhelmed logic should not contain such a thing

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@abstractdog do you have pointer what is different in STANDALONE_ZOOKEEPER that it doesn't work here but does work in YARN mode?

@abstractdogabstractdogFeb 20, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hm, that's a good question: I guess here is where we might want to get back to the original motivation: whether a standalone TezAM docker container needs a tez-site.xml on its classpath (and if so, could it read) or if there is another way to configure it... isn't TEZ-4014 or some earlier work already taking care of this? what do you think @Aggarwal-Raghav ?

for (StringconfFile : confFromXml.getTrimmedStringCollection(TezConfiguration.TEZ_AM_STANDALONE_CONFS)) {
try (InputStreamadditionalInput = ClassLoader.getSystemResourceAsStream(confFile)) {
ConfigurationadditionalConfFromXml = TezUtilsInternal.readTezConfigurationXml(additionalInput);
confFromXml.addResource(additionalConfFromXml);
}
}

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll get back on this TEZ-4014 analysis in couple of days.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @abstractdog, for pointing out TEZ-4014.It works well, provided we pass TEZ_FRAMEWORK_MODE=STANDALONE_ZOOKEEPER as an environment variable (using the --env-file or -e flag in the docker run command) and ensure tez-site.xml is in the classpath.

Without this environment variable, it defaults back to YARN mode. I might have missed passing the -e flag initially while working on TEZ-4682 stared using with new TezConfiguration() as in current TEZ-4682 PR 551075b and never checked back :-(

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll close this JIRA then

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Aggarwal-Raghav@tez-yetus@abstractdog@ayushtkn