ayushtkn commented on PR #342:
URL: https://github.com/apache/tez/pull/342#issuecomment-2558341632

   hmm, Something from HDFS, some jackson-databind transitive dependency 
missing or so. The entire trace is like
   ```
   java.lang.NoClassDefFoundError: 
com/fasterxml/jackson/core/util/JacksonFeature
   
        at 
com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:656)
        at 
com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:558)
        at 
org.apache.hadoop.hdfs.server.blockmanagement.SlowPeerTracker.<clinit>(SlowPeerTracker.java:78)
        at 
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.initSlowPeerTracker(DatanodeManager.java:373)
        at 
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.<init>(DatanodeManager.java:263)
        at 
org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.<init>(BlockManager.java:502)
        at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:926)
        at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:851)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:1396)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:495)
        at 
org.apache.hadoop.hdfs.DFSTestUtil.formatNameNode(DFSTestUtil.java:256)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.configureNameService(MiniDFSCluster.java:1158)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.createNameNodesAndSetConf(MiniDFSCluster.java:1042)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:974)
        at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:594)
        at 
org.apache.hadoop.hdfs.MiniDFSCluster$Builder.build(MiniDFSCluster.java:533)
        at 
org.apache.tez.tests.ExternalTezServiceTestHelper.<init>(ExternalTezServiceTestHelper.java:63)
        at 
org.apache.tez.tests.TestExternalTezServices.setup(TestExternalTezServices.java:76)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        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.RunBefores.invokeMethod(RunBefores.java:33)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
        at 
com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
        at 
com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
        at 
com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
        at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
   Caused by: java.lang.ClassNotFoundException: 
com.fasterxml.jackson.core.util.JacksonFeature
        at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
        ... 37 more
   
   ```
   
   Looking at the dependency tree now, Jackson 2.10 is getting pulled in by Avro
   
   ```
   ayushsaxena@ayushsaxena tez-ext-service-tests % mvn clean dependency:tree | 
grep jackson-core:jar -B4
   [INFO] |  +- org.apache.commons:commons-configuration2:jar:2.10.1:compile
   [INFO] |  +- org.apache.commons:commons-lang3:jar:3.12.0:compile
   [INFO] |  +- org.apache.commons:commons-text:jar:1.10.0:compile
   [INFO] |  +- org.apache.avro:avro:jar:1.9.2:compile
   [INFO] |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.10.2:compile
   ```
   
   which earlier was coming from Jackson-databind defined in hadoop-common
   ```
   ayushsaxena@ayushsaxena tez-ext-service-tests % mvn clean dependency:tree | 
grep jackson-core:jar -B4
   [INFO] |  |     +- org.apache.kerby:kerby-asn1:jar:1.0.1:compile
   [INFO] |  |     \- org.apache.kerby:kerby-util:jar:1.0.1:compile
   [INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.7.1:compile
   [INFO] |  |  +- 
com.fasterxml.jackson.core:jackson-annotations:jar:2.12.7:compile
   [INFO] |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.12.7:compile
   ayushsaxena@ayushsaxena tez-ext-service-tests % 
   
   ```
   
   Why it started happening, I am not very sure but there was some Avro related 
change in Hadoop
   
https://github.com/apache/hadoop/pull/7007/files#diff-a74b4a65ab1f4aed61344787bb9654ba7e835154730653848c88ca11f9965dc0R301
   
   Ideally I feel we should exclude Jackson coming from Avro in Hadoop itself


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to