sakserv/hadoop-mini-clusters

Knox issues after upgrading to HDP 2.6.0.3

Closed this issue · 7 comments

After upgrading packages to HDP 2.6.0.3. The following exception occurs with the Knox WebHDFS test which appears to be related to conflicting asm packages. All other modules are in good shape.

2017-04-30 07:45:17 WARN  QueuedThreadPool:610 - 
java.lang.IncompatibleClassChangeError: class org.eclipse.jetty.annotations.AnnotationParser$MyClassVisitor has interface org.objectweb.asm.ClassVisitor as super class
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:974)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:956)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:909)
	at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:164)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:549)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)
2017-04-30 07:45:17 WARN  QueuedThreadPool:610 - 
java.lang.IncompatibleClassChangeError: org/eclipse/jetty/annotations/AnnotationParser$MyClassVisitor
	at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:974)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:956)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:909)
	at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:164)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:549)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)
2017-04-30 07:45:17 WARN  QueuedThreadPool:610 - 
java.lang.IncompatibleClassChangeError: org/eclipse/jetty/annotations/AnnotationParser$MyClassVisitor
	at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:974)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:956)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:909)
	at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:164)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:549)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)
2017-04-30 07:45:17 WARN  QueuedThreadPool:610 - 
java.lang.IncompatibleClassChangeError: org/eclipse/jetty/annotations/AnnotationParser$MyClassVisitor
	at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:974)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:956)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:909)
	at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:164)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:549)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)
2017-04-30 07:45:17 WARN  QueuedThreadPool:610 - 
java.lang.IncompatibleClassChangeError: org/eclipse/jetty/annotations/AnnotationParser$MyClassVisitor
	at org.eclipse.jetty.annotations.AnnotationParser.scanClass(AnnotationParser.java:974)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJarEntry(AnnotationParser.java:956)
	at org.eclipse.jetty.annotations.AnnotationParser.parseJar(AnnotationParser.java:909)
	at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:831)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$ParserTask.call(AnnotationConfiguration.java:164)
	at org.eclipse.jetty.annotations.AnnotationConfiguration$1.run(AnnotationConfiguration.java:549)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)
2017-04-30 07:45:17 WARN  QueuedThreadPool:617 - Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$3@34ab7db7 in qtp733357076{STARTED,8<=8<=254,i=3,q=0}
2017-04-30 07:45:17 WARN  QueuedThreadPool:617 - Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$3@34ab7db7 in qtp733357076{STARTED,8<=8<=254,i=3,q=0}
2017-04-30 07:45:17 WARN  QueuedThreadPool:617 - Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$3@34ab7db7 in qtp733357076{STARTED,8<=8<=254,i=3,q=0}
2017-04-30 07:45:17 WARN  QueuedThreadPool:617 - Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$3@34ab7db7 in qtp733357076{STARTED,8<=8<=254,i=3,q=0}
2017-04-30 07:45:17 WARN  QueuedThreadPool:617 - Unexpected thread death: org.eclipse.jetty.util.thread.QueuedThreadPool$3@34ab7db7 in qtp733357076{STARTED,8<=8<=254,i=3,q=0}

Opened https://issues.apache.org/jira/browse/KNOX-943 as I've yet to find a solution here.

This issue still existed in HDP 2.6.1.0. I will exclude the Knox tests from the surefire plugin and release as is. PR's welcome with a fix.

travis is having issues currently. New release coming once travis is working again.

Hi,

I just find a very very ugly way to make knox works.
It seems that it comes with enabling Jetty's JSP support in Knox hosted applications [KNOX-692].

If you override the class and disabling this code, it works.

I make the "patch" on hadoop-unit and it works.
https://github.com/jetoile/hadoop-unit/blob/master/hadoop-unit-knox/src/main/java/org/apache/hadoop/gateway/GatewayServer.java

However it is very ugly...

Regards,

Thank you for tracking this down @jetoile! It's a privilege to have you as a user. :) I'll take a hack for this as I'm not finding another way. I'll work on getting this integrated in the near future and will cut a new release.

thx ;)

I've gone ahead and released 0.1.13. Closing this for now and will continue to check that this workaround is required. Thanks again!