Skip to content

HADOOP-15566 Opentelemetry changes using java agent #3445

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 673 commits into
base: trunk
Choose a base branch
from

Conversation

kiran-maturi
Copy link

Description of PR

Changes in the PR are related to enabling tracing using opentelemetry. I am using opentelemetry-javaagent to initialize the Tracer object

How was this patch tested?

I created a build locally and got single node cluster setup and tested the changes.

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@kiran-maturi
Copy link
Author

kiran-maturi commented Sep 16, 2021

How to Test locally. (Instructions for linux)

  1. Add the following maven dependency to hadoop-common/pom.xml
<dependency>
        <groupId>io.opentelemetry.javaagent</groupId>
        <artifactId>opentelemetry-javaagent</artifactId>
        <version>${opentelemetry-instrumentation.version}</version>
        <classifier>all</classifier>
      </dependency> 
  1. Build using the following command
mvn install -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true
  1. Extract the tar from the location hadoop-dist/target/ (Ex tar -xvf hadoop-dist/target/hadoop-3.4.0-SNAPSHOT.tar.gz -C ~/)
  2. cd ~/hadoop-3.4.0-SNAPSHOT/
  3. uncomment the following lines in hadoop-env.sh (location: etc/hadoop/hadoop-env.sh)
# export OPENTELEMETRY_JAVAAGENT_PATH="$(find $HADOOP_HOME/share/hadoop/common/lib/ -name opentelemetry-javaagent*)"
# export HADOOP_TRACE_OPTS="-javaagent:$OPENTELEMETRY_JAVAAGENT_PATH -Dotel.traces.exporter=jaeger -Dotel.metrics.exporter=none"
# export HDFS_NAMENODE_OPTS="$HDFS_NAMENODE_OPTS $HADOOP_TRACE_OPTS -Dotel.resource.attributes=service.name=HDFS_NAMENODE"
# export HDFS_DATANODE_OPTS="$HDFS_DATANODE_OPTS $HADOOP_TRACE_OPTS -Dotel.resource.attributes=service.name=HDFS_DATANODE"
# export HDFS_SECONDARYNAMENODE_OPTS="$HDFS_SECONDARYNAMENODE_OPTS $HADOOP_TRACE_OPTS -Dotel.resource.attributes=service.name=HDFS_SECONDARYNAMENODE"
  1. Make sure share/hadoop/common/lib/ has the maven dependency (opentelemetry-javaagent-1.3.0-all.jar) that you have added in step 1.
  2. Start Jaeger following the instructions https://www.jaegertracing.io/docs/1.26/getting-started/
  3. Setup Single Node cluster following the instructions https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation
  4. You should be able to see the traces in the jaeger UI (http://localhost:16686/search)

@kiran-maturi
Copy link
Author

@minni31 please follow the above mentioned instructions to setup locally

@minni31
Copy link
Contributor

minni31 commented Sep 17, 2021

Thanks @ArkenKiran
With your changes, I tried running mapreduce pi example, it is failing with NPE

hadoop jar C:\RMCosmos\OpenTelemtryHadoop\hadoop\hadoop-dist\target\hadoop-3.4.0-SNAPSHOT\share\hadoop\mapreduce\hadoop-mapreduce-examples-3.4.0-SNAPSHOT.jar pi 2 2

Number of Maps = 2
Samples per Map = 2
2021-09-17 14:27:37,367 WARN [DataStreamer for file /user/mimittal/QuasiMonteCarlo_1631869056391_2017853234/in/part0 block BP-346835553-172.20.0.1-1631788949347:blk_1073741834_1010] hdfs.DataStreamer (DataStreamer.java:run(819)) - DataStreamer Exception
java.lang.NullPointerException
at org.apache.hadoop.tracing.Tracer.newSpan(Tracer.java:60)
at org.apache.hadoop.tracing.Tracer.newScope(Tracer.java:66)
at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:760)
java.io.IOException: java.lang.NullPointerException
at org.apache.hadoop.hdfs.ExceptionLastSeen.set(ExceptionLastSeen.java:45)
at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:822)
Caused by: java.lang.NullPointerException
at org.apache.hadoop.tracing.Tracer.newSpan(Tracer.java:60)
at org.apache.hadoop.tracing.Tracer.newScope(Tracer.java:66)
at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:760)

Please help with debugging of the issue.

@kiran-maturi
Copy link
Author

@minni31 Please build with the new changes. I was able to run the example you shared.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 53s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 shelldocs 0m 0s Shelldocs was not available.
+0 🆗 buf 0m 0s buf was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 12m 36s Maven dependency ordering for branch
+1 💚 mvninstall 24m 34s trunk passed
+1 💚 compile 24m 33s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 compile 19m 56s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 checkstyle 3m 51s trunk passed
+1 💚 mvnsite 4m 40s trunk passed
+1 💚 javadoc 3m 23s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 4m 24s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+0 🆗 spotbugs 0m 32s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 24m 57s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 25m 18s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 30s Maven dependency ordering for patch
+1 💚 mvninstall 3m 36s the patch passed
+1 💚 compile 22m 30s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
-1 ❌ cc 22m 30s /results-compile-cc-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 generated 11 new + 312 unchanged - 11 fixed = 323 total (was 323)
-1 ❌ javac 22m 30s /results-compile-javac-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 generated 2 new + 1888 unchanged - 0 fixed = 1890 total (was 1888)
+1 💚 compile 19m 27s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
-1 ❌ cc 19m 27s /results-compile-cc-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu120.04-b10 with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu120.04-b10 generated 20 new + 303 unchanged - 20 fixed = 323 total (was 323)
-1 ❌ javac 19m 27s /results-compile-javac-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu120.04-b10 with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu120.04-b10 generated 2 new + 1762 unchanged - 0 fixed = 1764 total (was 1762)
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 3m 52s /results-checkstyle-root.txt root: The patch generated 16 new + 221 unchanged - 2 fixed = 237 total (was 223)
+1 💚 mvnsite 4m 35s the patch passed
+1 💚 shellcheck 0m 0s No new issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 javadoc 3m 18s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 4m 21s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+0 🆗 spotbugs 0m 28s hadoop-project has no data from spotbugs
-1 ❌ spotbugs 2m 37s /new-spotbugs-hadoop-common-project_hadoop-common.html hadoop-common-project/hadoop-common generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
+1 💚 shadedclient 25m 32s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 28s hadoop-project in the patch passed.
+1 💚 unit 19m 18s hadoop-common in the patch passed.
+1 💚 unit 2m 31s hadoop-hdfs-client in the patch passed.
+1 💚 unit 317m 40s hadoop-hdfs in the patch passed.
+1 💚 asflicense 0m 58s The patch does not generate ASF License warnings.
569m 33s
Reason Tests
SpotBugs module:hadoop-common-project/hadoop-common
Redundant nullcheck of StringBuilder.toString(), which is known to be non-null in org.apache.hadoop.tracing.SpanContext.buildFromKVMap(Map) Redundant null check at SpanContext.java:is known to be non-null in org.apache.hadoop.tracing.SpanContext.buildFromKVMap(Map) Redundant null check at SpanContext.java:[line 82]
Unread field:Tracer.java:[line 90]
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/1/artifact/out/Dockerfile
GITHUB PR #3445
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell xml shellcheck shelldocs spotbugs checkstyle cc buflint bufcompat
uname Linux 222f2ebf76a7 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 93e60d6
Default Java Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/1/testReport/
Max. process+thread count 3143 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/1/console
versions git=2.25.1 maven=3.6.3 shellcheck=0.7.0 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@ndimiduk
Copy link
Member

Heya @ArkenKiran , I'm testing out OpenTelemetry tracing in HBase and I'd like to extend spans down into HDFS. Is this patch is ready for user-testing? Thanks.

@kiran-maturi
Copy link
Author

kiran-maturi commented Oct 29, 2021

@ndimiduk yes you can use this patch for testing with hbase. Can you please share the details how you plan to test I can also try locally. Thanks

@kiran-maturi
Copy link
Author

@steveloughran can you please review this PR. I will try to share some samples of the traces by tomorrow.

@ndimiduk
Copy link
Member

yes you can use this patch for testing with hbase. Can you please share the details how you plan to test I can also try locally. Thanks

@ArkenKiran I'm working with HBase from branch-2, compiled with JDK11 against hadoop-3.3.1. I have a zookeeper, name node, data node, hbase master, and hbase region server each running as separate processes. i'm using jaeger with cassandra as my span store. i've been posting progress and screenshots in the HBase Slack (apache-hbase.slack.com, invitation only, but you can request an invite by mailing our dev list, or send me your email and I'll add you), and filing/fixing bugs as I go. I'm also on the-asf.slack.com if that's easier.

1 similar comment
@ndimiduk
Copy link
Member

yes you can use this patch for testing with hbase. Can you please share the details how you plan to test I can also try locally. Thanks

@ArkenKiran I'm working with HBase from branch-2, compiled with JDK11 against hadoop-3.3.1. I have a zookeeper, name node, data node, hbase master, and hbase region server each running as separate processes. i'm using jaeger with cassandra as my span store. i've been posting progress and screenshots in the HBase Slack (apache-hbase.slack.com, invitation only, but you can request an invite by mailing our dev list, or send me your email and I'll add you), and filing/fixing bugs as I go. I'm also on the-asf.slack.com if that's easier.

@steveloughran
Copy link
Contributor

@ArkenKiran i'm delegating review and test to @ndimiduk for now

@steveloughran steveloughran changed the title HADOOP-15566 Opentelemtery changes using java agent HADOOP-15566 Opentelemetry changes using java agent Nov 5, 2021
@kiran-maturi
Copy link
Author

@ndimiduk Thanks for sharing your approach. I was able to generate the traces for hbase. I could see the hadoop components only in few paths. Please let me know the next steps for HADOOP-15566
Hbase meta scan block cache miss.
meta-scan-block-cache-miss
Hbase meta scan block cache hit
meta-scan-block-cache-hit
hbase put
hbase-put
hbase scan
hbase-scan
hadoop shell ls
hadoop-shell-ls
hadoop shell mkdir
hadoop-shell-mkdir

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 57s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 shelldocs 0m 1s Shelldocs was not available.
+0 🆗 buf 0m 1s buf was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 12m 17s Maven dependency ordering for branch
+1 💚 mvninstall 25m 21s trunk passed
-1 ❌ compile 3m 46s /branch-compile-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root in trunk failed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.
-1 ❌ compile 3m 12s /branch-compile-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root in trunk failed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.
+1 💚 checkstyle 3m 40s trunk passed
+1 💚 mvnsite 3m 57s trunk passed
+1 💚 javadoc 2m 43s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 3m 43s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+0 🆗 spotbugs 0m 23s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 24m 52s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 25m 12s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 27s Maven dependency ordering for patch
+1 💚 mvninstall 3m 12s the patch passed
-1 ❌ compile 3m 40s /patch-compile-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root in the patch failed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.
-1 ❌ cc 3m 40s /patch-compile-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root in the patch failed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.
-1 ❌ javac 3m 40s /patch-compile-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root in the patch failed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.
-1 ❌ compile 3m 5s /patch-compile-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root in the patch failed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.
-1 ❌ cc 3m 5s /patch-compile-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root in the patch failed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.
-1 ❌ javac 3m 5s /patch-compile-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root in the patch failed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 3m 35s /results-checkstyle-root.txt root: The patch generated 16 new + 220 unchanged - 2 fixed = 236 total (was 222)
+1 💚 mvnsite 3m 35s the patch passed
+1 💚 shellcheck 0m 0s No new issues.
+1 💚 xml 0m 2s The patch has no ill-formed XML file.
+1 💚 javadoc 2m 20s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 3m 26s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+0 🆗 spotbugs 0m 14s hadoop-project has no data from spotbugs
-1 ❌ spotbugs 2m 23s /new-spotbugs-hadoop-common-project_hadoop-common.html hadoop-common-project/hadoop-common generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
+1 💚 shadedclient 24m 57s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 15s hadoop-project in the patch passed.
+1 💚 unit 17m 52s hadoop-common in the patch passed.
+1 💚 unit 2m 16s hadoop-hdfs-client in the patch passed.
+1 💚 unit 326m 11s hadoop-hdfs in the patch passed.
+1 💚 asflicense 0m 38s The patch does not generate ASF License warnings.
494m 23s
Reason Tests
SpotBugs module:hadoop-common-project/hadoop-common
Redundant nullcheck of StringBuilder.toString(), which is known to be non-null in org.apache.hadoop.tracing.SpanContext.buildFromKVMap(Map) Redundant null check at SpanContext.java:is known to be non-null in org.apache.hadoop.tracing.SpanContext.buildFromKVMap(Map) Redundant null check at SpanContext.java:[line 82]
Unread field:Tracer.java:[line 90]
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/2/artifact/out/Dockerfile
GITHUB PR #3445
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell xml shellcheck shelldocs spotbugs checkstyle cc buflint bufcompat
uname Linux 3aab5c0ca7a5 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 5d2f595a252d493ae86790c4981f84bd20f7fc11
Default Java Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/2/testReport/
Max. process+thread count 2037 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/2/console
versions git=2.25.1 maven=3.6.3 shellcheck=0.7.0 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@ndimiduk
Copy link
Member

ndimiduk commented Nov 9, 2021

That's great progress, @ArkenKiran ! You got there before I could. On the read path, any block cache miss will go to the hdfs client for a read (can still be local via short-circuit read). On the write path, we should see hdfs interaction via WAL writes and by MemStore flushes. WAL writes are inline with the client activity, MemStore flushes happen in the background.

@ndimiduk
Copy link
Member

@ArkenKiran where do you get the opentelemetry-agent jar for your testing? I've built this patch and it appears that the agent jar is not included.

$ mvn clean install -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true
...
$ cd /tmp
$ tar xzf ~/repos/apache/hadoop/hadoop-dist/target/hadoop-3.4.0-SNAPSHOT.tar.gz
$ cd hadoop-3.4.0-SNAPSHOT
$ ls -1 share/hadoop/common/lib/ | grep opentel
opentelemetry-api-1.3.0.jar
opentelemetry-context-1.3.0.jar

@ndimiduk
Copy link
Member

I think you need to add the otel-agent jar as a dependency to hadoop-common and exclude it as a dependency from hadoop-client. then it'll show up in share/hadoop/common/lib. That's still not quite right though, because we don't want the agent to be included in any runtime class path, only to be available to inclusion via -javaagent:....

@ndimiduk
Copy link
Member

This isn't right, but it's along the path,

diff --git a/hadoop-client-modules/hadoop-client/pom.xml b/hadoop-client-modules/hadoop-client/pom.xml
index dced359b286..82f38cc77ec 100644
--- a/hadoop-client-modules/hadoop-client/pom.xml
+++ b/hadoop-client-modules/hadoop-client/pom.xml
@@ -98,6 +98,10 @@
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
         </exclusion>
+        <exclusion>
+          <groupId>io.opentelemetry.javaagent</groupId>
+          <artifactId>opentelemetry-javaagent</artifactId>
+        </exclusion>
       </exclusions>
     </dependency>
 
diff --git a/hadoop-common-project/hadoop-common/pom.xml b/hadoop-common-project/hadoop-common/pom.xml
index 969a9a751d4..42fe7747bb3 100644
--- a/hadoop-common-project/hadoop-common/pom.xml
+++ b/hadoop-common-project/hadoop-common/pom.xml
@@ -380,6 +380,12 @@
       <artifactId>opentelemetry-api</artifactId>
       <version>${opentelemetry.version}</version>
     </dependency>
+    <dependency>
+      <groupId>io.opentelemetry.javaagent</groupId>
+      <artifactId>opentelemetry-javaagent</artifactId>
+      <version>${opentelemetry-agent.version}</version>
+      <classifier>all</classifier>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml
index 76f39bf8590..1486ff8ef33 100644
--- a/hadoop-project/pom.xml
+++ b/hadoop-project/pom.xml
@@ -214,6 +214,7 @@
     <apache-ant.version>1.10.11</apache-ant.version>
     <opentelemetry.version>1.3.0</opentelemetry.version>
     <opentelemetry-instrumentation.version>1.3.0</opentelemetry-instrumentation.version>
+    <opentelemetry-agent.version>1.0.1</opentelemetry-agent.version>
   </properties>
 
   <dependencyManagement>

@ndimiduk
Copy link
Member

Oh I see, you already have the dependency in the hadoop-project/pom.xml. I guess it doesn't get picked up from there during packaging. So my patch is not quite right either.

@ndimiduk
Copy link
Member

Okay, this patch to your branch,

diff --git a/hadoop-client-modules/hadoop-client/pom.xml b/hadoop-client-modules/hadoop-client/pom.xml
index dced359b286..82f38cc77ec 100644
--- a/hadoop-client-modules/hadoop-client/pom.xml
+++ b/hadoop-client-modules/hadoop-client/pom.xml
@@ -98,6 +98,10 @@
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
         </exclusion>
+        <exclusion>
+          <groupId>io.opentelemetry.javaagent</groupId>
+          <artifactId>opentelemetry-javaagent</artifactId>
+        </exclusion>
       </exclusions>
     </dependency>
 
diff --git a/hadoop-common-project/hadoop-common/pom.xml b/hadoop-common-project/hadoop-common/pom.xml
index 969a9a751d4..2da28614f45 100644
--- a/hadoop-common-project/hadoop-common/pom.xml
+++ b/hadoop-common-project/hadoop-common/pom.xml
@@ -380,6 +380,11 @@
       <artifactId>opentelemetry-api</artifactId>
       <version>${opentelemetry.version}</version>
     </dependency>
+    <dependency>
+      <groupId>io.opentelemetry.javaagent</groupId>
+      <artifactId>opentelemetry-javaagent</artifactId>
+      <classifier>all</classifier>
+    </dependency>
   </dependencies>
 
   <build>

Give me this result in the tarball

$ ls -1 share/hadoop/common/lib/ | grep opentel
opentelemetry-api-1.3.0.jar
opentelemetry-context-1.3.0.jar
opentelemetry-javaagent-1.3.0-all.jar

@kiran-maturi
Copy link
Author

kiran-maturi commented Nov 12, 2021

@ndimiduk thanks for looking into this. I had a todo for this to move it some other location other than lib (like a trace folder). I am not sure how we can do it. I tried few options of adding it in hadoop-dist but that didn't work. I will add your changes to the current PR. Please let me know how we can move it to another folder (in case it its needed)

@ndimiduk
Copy link
Member

Paging @steveloughran @aw-was-here @busbey ... we'd like to ship this opentelemetry-agent.jar in the distribution but we don't want it on the class path. Can you advise on how we might manage the dependency in the pom, but relocate it for distribution? Maybe we add an invocation of the dependency:copy goal to somewhere in the dist profile and edit one of the bin/dist-*-sitiching scripts to move it into place? I imagine we'd want it in a new directory, maybe share/hadoop/common/agents ? Thanks.

@aw-was-here
Copy link
Contributor

I haven't look at this code in forever, but I'm assuming no one has messed up the 'magic bits' in hadoop-dist that allows users to add things via HADOOP_OPTIONAL_TOOLS. See dev-support/bin/dist-tools-hooks-maker.

szilard-nemeth and others added 6 commits November 24, 2021 18:46
…s and core-default.xml (apache#3099)

Reviewed-by: Ayush Saxena <ayushsaxena@apache.org>
Reviewed-by: Ayush Saxena <ayushsaxena@apache.org>
Reviewed-by: Akira Ajisaka <aajisaka@apache.org>
Reviewed-by: Inigo Goiri <inigoiri@apache.org>
Reviewed-by: Hui Fei <ferhui@apache.org>
Reviewed-by: Viraj Jasani <vjasani@apache.org>
Reviewed-by: litao <tomleescut@gmail.com>
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 55s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 shelldocs 0m 1s Shelldocs was not available.
+0 🆗 buf 0m 1s buf was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 12m 26s Maven dependency ordering for branch
+1 💚 mvninstall 24m 39s trunk passed
+1 💚 compile 23m 36s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 compile 20m 9s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+1 💚 checkstyle 3m 54s trunk passed
+1 💚 mvnsite 5m 12s trunk passed
+1 💚 javadoc 3m 57s trunk passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 4m 59s trunk passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+0 🆗 spotbugs 0m 32s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+0 🆗 spotbugs 0m 27s branch/hadoop-tools/hadoop-tools-dist no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 23m 43s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 24m 4s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 32s Maven dependency ordering for patch
+1 💚 mvninstall 3m 52s the patch passed
+1 💚 compile 24m 25s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
-1 ❌ cc 24m 25s /results-compile-cc-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 generated 21 new + 302 unchanged - 21 fixed = 323 total (was 323)
-1 ❌ javac 24m 25s /results-compile-javac-root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04.txt root-jdkUbuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 generated 2 new + 1931 unchanged - 0 fixed = 1933 total (was 1931)
+1 💚 compile 20m 16s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
-1 ❌ cc 20m 16s /results-compile-cc-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu120.04-b10 with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu120.04-b10 generated 19 new + 304 unchanged - 19 fixed = 323 total (was 323)
-1 ❌ javac 20m 16s /results-compile-javac-root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10.txt root-jdkPrivateBuild-1.8.0_292-8u292-b10-0ubuntu120.04-b10 with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu120.04-b10 generated 2 new + 1805 unchanged - 0 fixed = 1807 total (was 1805)
-1 ❌ blanks 0m 0s /blanks-eol.txt The patch has 1 line(s) that end in blanks. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
-0 ⚠️ checkstyle 3m 50s /results-checkstyle-root.txt root: The patch generated 16 new + 501 unchanged - 2 fixed = 517 total (was 503)
+1 💚 mvnsite 5m 11s the patch passed
+1 💚 shellcheck 0m 0s No new issues.
+1 💚 xml 0m 3s The patch has no ill-formed XML file.
+1 💚 javadoc 3m 55s the patch passed with JDK Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04
+1 💚 javadoc 4m 55s the patch passed with JDK Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
+0 🆗 spotbugs 0m 29s hadoop-project has no data from spotbugs
+0 🆗 spotbugs 0m 29s hadoop-tools/hadoop-tools-dist has no data from spotbugs
+1 💚 shadedclient 22m 44s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 27s hadoop-project in the patch passed.
+1 💚 unit 18m 2s hadoop-common in the patch passed.
+1 💚 unit 2m 29s hadoop-hdfs-client in the patch passed.
-1 ❌ unit 319m 13s /patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt hadoop-hdfs in the patch passed.
+1 💚 unit 0m 37s hadoop-tools-dist in the patch passed.
+1 💚 asflicense 0m 58s The patch does not generate ASF License warnings.
579m 32s
Reason Tests
Failed junit tests hadoop.hdfs.server.datanode.TestDataNodeHotSwapVolumes
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/7/artifact/out/Dockerfile
GITHUB PR #3445
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell xml shellcheck shelldocs spotbugs checkstyle cc buflint bufcompat
uname Linux 6f51c5ca7809 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 32e5267
Default Java Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.11+9-Ubuntu-0ubuntu2.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_292-8u292-b10-0ubuntu1~20.04-b10
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/7/testReport/
Max. process+thread count 3143 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs hadoop-tools/hadoop-tools-dist U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/7/console
versions git=2.25.1 maven=3.6.3 shellcheck=0.7.0 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@kiran-maturi
Copy link
Author

@ndimiduk @cijothomas @iwasakims can you please help with the review

@apache apache deleted a comment from hadoop-yetus Mar 21, 2022
@apache apache deleted a comment from hadoop-yetus Mar 21, 2022
@apache apache deleted a comment from hadoop-yetus Mar 21, 2022
@apache apache deleted a comment from hadoop-yetus Mar 21, 2022
Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

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

right, let's get this into trunk. We know we need it.

naming

It's very confusing that the same last names are used everywhere (span, spancontext); that is something we will have to live with. However, we can at least use different names for fields and parameters. this PR does it in some places (OTelTracer) but not consistently

I'm going to propose openSpan, openSpanContext. ...

i think for scope we should use openScope for consistency, even when there is no conflict.

marshalling.

I think the span info should continue to be marshalled as optional bytes.

  • compatibility: nothing will break on the wire.
  • flexibility to change again in future.

There is actually a fun little problem here. How to handle the situation where two services are built with different versions of tracing, and a client is sending/expecting htrace values?

Maybe a new optional byte array is needed for opentrace data; all ambiguity goes away then.

testing

There is scope for many more tests. I think the initial ones should be let's see what happens if hey span context has come over the wire and cannot be successfully unmarshalled. That is going to be the critical one for wire compatibility across versions.

optional use.

i think what nick dimiduk was asking for was the ability for things to work if the opentelemetry jar is not on the classpath. Is this right? if so, what to do?

We could hide all use of open telemetry with an optional in a class to our own tracing classes; if opentrace was found/enabled we would use that. otherwise it'd all be no-ops. We would keep all uses of the open telemetry class in one single class and use some reflection tricks to decide which to use (i.e. if the jar was found, use that binding...if not fall back to the noop).

import java.io.Closeable;

public class Span implements Closeable {

private io.opentelemetry.api.trace.Span span = null;
Copy link
Contributor

Choose a reason for hiding this comment

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

  1. add some javadoc to line 24 to warn this wraps the opentelemetry span.
  2. skip the =null assignment, as it will save the jvm from some needless init. assuming a lot of spans get created, this may matter
  3. give the field a different name. like 'openspan'

}

public void close() {
if(span != null){
span.end();
Copy link
Contributor

Choose a reason for hiding this comment

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

would span need to be nullified here. or is it ok to invoke it after being ended?

Copy link
Author

Choose a reason for hiding this comment

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

would span need to be nullified here. or is it ok to invoke it after being ended?

I think we need not nullify span after it has ended. In general we call span.end in a finally block so no further operation takes place. If we end the span before that and try adding events or call end it won't have any impact.

private static final String TRACE_FLAGS = "TRACE_FLAGS";


private io.opentelemetry.api.trace.SpanContext spanContext = null;
Copy link
Contributor

Choose a reason for hiding this comment

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

again, give a different field name to avoid more confusion; skip the assignment to null

String traceId = kvMap.get(TRACE_ID);
String spanId = kvMap.get(SPAN_ID);
String traceFlagsHex = kvMap.get(TRACE_FLAGS);
TraceFlags traceFlags = TraceFlags.fromHex(traceFlagsHex, 0);
Copy link
Contributor

Choose a reason for hiding this comment

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

what if traceFlagsHex isn't found? exit fast


import org.junit.Test;

import static org.junit.Assert.*;
Copy link
Contributor

Choose a reason for hiding this comment

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

* should extend AbstractHadoopTestBase or HadoopTestBase here.

  • there is scope for a lot more tests

Copy link
Author

Choose a reason for hiding this comment

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

@steveloughran sure will start adding more tests

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 24s #3445 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #3445
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/8/console
versions git=2.17.1
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

Copy link
Contributor

@steveloughran steveloughran left a comment

Choose a reason for hiding this comment

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

thank you for these changes. now as far as big issues we need to worry about, they are

  • wire marshalling in protobuf: efficiency and compatibility
  • what our story about dependencies are.

for dependencies we either embrace and mandate a new jar on the cp for iPC (easiest in our code) or do some reflection games to downgrade if it is not on the classpath. which, given telemetry isn't normally a critical feature, could be justified.

but having all of the opentelemetry APIs present makes it easier to pick up and use elsewhere (s3a auditing...).

how much extra pain in terms of transient dependencies would it be for us to always make the jar a dependency of hadoop common?

@@ -21,32 +21,36 @@

import java.io.Closeable;

/***
* This class is a wrapper class on top of opentelemetry Span class
* avoiding direct dependency on opentelemetry API
Copy link
Contributor

Choose a reason for hiding this comment

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

afraid you will need a "." at the end to keep all versions of javadoc happy. longstanding PITA

@kiran-maturi
Copy link
Author

kiran-maturi commented Mar 28, 2022

  • wire marshalling in protobuf: efficiency and compatibility

My thought for having a map was, the trace_id, parent_id, trace_flags, trace_state have fixed lengths the serialization and deserialization is still in progress for binary format. It might be good to wait for sometime based on this
https://w3c.github.io/trace-context-binary/.

  • what our story about dependencies are.

Currently we need the agent jar only at runtime and its shaded already. We need to have in seperate path other than the common which will not be picked by default (ex $HADOOP_HOME/share/hadoop/trace). probably somewhere outside the common. Opentelemetry APIs are light . The agent jar will only be picked from env when enabled.
export OPENTELEMETRY_JAVAAGENT_PATH="$(find $HADOOP_HOME/share/hadoop/tools/lib/ -name opentelemetry-javaagent*)"

for dependencies we either embrace and mandate a new jar on the cp for iPC (easiest in our code) or do some reflection games to downgrade if it is not on the classpath. which, given telemetry isn't normally a critical feature, could be justified.

I am not sure if we need this

how much extra pain in terms of transient dependencies would it be for us to always make the jar a dependency of hadoop common?

We can keep it common the whole size was close to 28MB and its shaded.

@steveloughran Please share your thoughts

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 26s #3445 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #3445
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/9/console
versions git=2.17.1
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@kiran-maturi
Copy link
Author

kiran-maturi commented Apr 12, 2022

@steveloughran I have made change to add new field to propagate the span context at RPC Layer.
Moved the opentelemetry javaagent the tools lib so it wont be picked by default. and we can update the paths in hadoop-env.sh. Please review

@kiran-maturi kiran-maturi requested review from steveloughran and cijothomas and removed request for steveloughran January 12, 2023 18:15
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 45s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+0 🆗 shelldocs 0m 1s Shelldocs was not available.
+0 🆗 buf 0m 1s buf was not available.
+0 🆗 buf 0m 1s buf was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 15m 54s Maven dependency ordering for branch
+1 💚 mvninstall 30m 50s trunk passed
+1 💚 compile 22m 59s trunk passed with JDK Ubuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04
+1 💚 compile 20m 29s trunk passed with JDK Private Build-1.8.0_352-8u352-ga-1~20.04-b08
+1 💚 checkstyle 3m 53s trunk passed
+1 💚 mvnsite 6m 5s trunk passed
-1 ❌ javadoc 1m 10s /branch-javadoc-hadoop-common-project_hadoop-common-jdkUbuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04.txt hadoop-common in trunk failed with JDK Ubuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04.
+1 💚 javadoc 4m 48s trunk passed with JDK Private Build-1.8.0_352-8u352-ga-1~20.04-b08
+0 🆗 spotbugs 0m 53s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 23m 58s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 24m 22s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 37s Maven dependency ordering for patch
+1 💚 mvninstall 4m 15s the patch passed
+1 💚 compile 22m 25s the patch passed with JDK Ubuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04
+1 💚 cc 22m 25s the patch passed
-1 ❌ javac 22m 25s /results-compile-javac-root-jdkUbuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04.txt root-jdkUbuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04 with JDK Ubuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04 generated 2 new + 2821 unchanged - 0 fixed = 2823 total (was 2821)
+1 💚 compile 20m 30s the patch passed with JDK Private Build-1.8.0_352-8u352-ga-1~20.04-b08
+1 💚 cc 20m 30s the patch passed
-1 ❌ javac 20m 30s /results-compile-javac-root-jdkPrivateBuild-1.8.0_352-8u352-ga-1~20.04-b08.txt root-jdkPrivateBuild-1.8.0_352-8u352-ga-120.04-b08 with JDK Private Build-1.8.0_352-8u352-ga-120.04-b08 generated 3 new + 2617 unchanged - 4 fixed = 2620 total (was 2621)
-1 ❌ blanks 0m 0s /blanks-eol.txt The patch has 1 line(s) that end in blanks. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
-0 ⚠️ checkstyle 3m 45s /results-checkstyle-root.txt root: The patch generated 14 new + 439 unchanged - 2 fixed = 453 total (was 441)
+1 💚 mvnsite 6m 0s the patch passed
+1 💚 shellcheck 0m 0s No new issues.
-1 ❌ javadoc 1m 6s /patch-javadoc-hadoop-common-project_hadoop-common-jdkUbuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04.txt hadoop-common in the patch failed with JDK Ubuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04.
+1 💚 javadoc 4m 54s the patch passed with JDK Private Build-1.8.0_352-8u352-ga-1~20.04-b08
+0 🆗 spotbugs 0m 40s hadoop-project has no data from spotbugs
+1 💚 shadedclient 23m 51s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 38s hadoop-project in the patch passed.
+1 💚 unit 18m 55s hadoop-common in the patch passed.
+1 💚 unit 2m 45s hadoop-hdfs-client in the patch passed.
-1 ❌ unit 273m 13s /patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt hadoop-hdfs in the patch passed.
+1 💚 unit 7m 43s hadoop-streaming in the patch passed.
+1 💚 asflicense 1m 17s The patch does not generate ASF License warnings.
556m 40s
Reason Tests
Failed junit tests hadoop.hdfs.TestLeaseRecovery2
hadoop.hdfs.server.sps.TestExternalStoragePolicySatisfier
hadoop.hdfs.TestRollingUpgrade
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/10/artifact/out/Dockerfile
GITHUB PR #3445
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint shellcheck shelldocs spotbugs checkstyle cc buflint bufcompat
uname Linux 685df44ab7e3 4.15.0-200-generic #211-Ubuntu SMP Thu Nov 24 18:16:04 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / a76aa87
Default Java Private Build-1.8.0_352-8u352-ga-1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.17+8-post-Ubuntu-1ubuntu220.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_352-8u352-ga-1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/10/testReport/
Max. process+thread count 2962 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs hadoop-tools/hadoop-streaming U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/10/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2 shellcheck=0.7.0
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 6m 56s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint was not available.
+0 🆗 shelldocs 0m 1s Shelldocs was not available.
+0 🆗 buf 0m 1s buf was not available.
+0 🆗 buf 0m 1s buf was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 1 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 13m 48s Maven dependency ordering for branch
+1 💚 mvninstall 19m 10s trunk passed
+1 💚 compile 8m 14s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 compile 7m 21s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 checkstyle 2m 5s trunk passed
+1 💚 mvnsite 3m 4s trunk passed
+1 💚 javadoc 2m 41s trunk passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 2m 57s trunk passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 26s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 19m 40s branch has no errors when building and testing our client artifacts.
-0 ⚠️ patch 19m 55s Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 29s Maven dependency ordering for patch
+1 💚 mvninstall 1m 58s the patch passed
+1 💚 compile 7m 54s the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 cc 7m 54s the patch passed
+1 💚 javac 7m 55s the patch passed
+1 💚 compile 7m 29s the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+1 💚 cc 7m 29s the patch passed
+1 💚 javac 7m 29s the patch passed
-1 ❌ blanks 0m 0s /blanks-eol.txt The patch has 1 line(s) that end in blanks. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
-0 ⚠️ checkstyle 2m 3s /results-checkstyle-root.txt root: The patch generated 14 new + 435 unchanged - 2 fixed = 449 total (was 437)
+1 💚 mvnsite 3m 10s the patch passed
+1 💚 shellcheck 0m 0s No new issues.
+1 💚 javadoc 2m 33s the patch passed with JDK Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 2m 58s the patch passed with JDK Private Build-1.8.0_392-8u392-ga-1~20.04-b08
+0 🆗 spotbugs 0m 20s hadoop-project has no data from spotbugs
+1 💚 shadedclient 19m 35s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 22s hadoop-project in the patch passed.
+1 💚 unit 16m 55s hadoop-common in the patch passed.
+1 💚 unit 2m 2s hadoop-hdfs-client in the patch passed.
-1 ❌ unit 184m 11s /patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt hadoop-hdfs in the patch passed.
+1 💚 unit 5m 47s hadoop-streaming in the patch passed.
+1 💚 asflicense 0m 42s The patch does not generate ASF License warnings.
359m 59s
Reason Tests
Failed junit tests hadoop.hdfs.server.datanode.TestDirectoryScanner
Subsystem Report/Notes
Docker ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/11/artifact/out/Dockerfile
GITHUB PR #3445
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint shellcheck shelldocs spotbugs checkstyle cc buflint bufcompat
uname Linux bff5f9b1d40f 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 78255c3
Default Java Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.21+9-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_392-8u392-ga-1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/11/testReport/
Max. process+thread count 4154 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs hadoop-tools/hadoop-streaming U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-3445/11/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2 shellcheck=0.7.0
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

tomasbanet added a commit to tomasbanet/hadoop that referenced this pull request Feb 15, 2025
tomasbanet added a commit to tomasbanet/hadoop that referenced this pull request Feb 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.