Details
Description
The CDH5.6 parcel contains conflicting jars (jsp-api-2.1-6.1.14.jar, jasper-runtime-5.5.23.jar). jsp-api-2.1-6.1.14.jar and jasper-runtime-5.5.23.jar contains different versions of org.apache.Constants.java class. The jasper-runtime-* jar does not contain the field "IS_SECURITY_ENABLED" therefore jetty throws an error "java.lang.NoSuchFieldError: IS_SECURITY_ENABLED" while trying to access this field in class org.apache.Constants.java which ultimately leads to failure in hadoop job.
This issue was experienced after we upgraded to version CDH5.6 from CDH5.4.5. Please see the log below to find the stack trace of the error.
2016-04-27 23:07:32,194 [INFO] [ServiceThread:org.apache.tez.dag.app.web.WebUIService] |http.HttpServer2|: Jetty bound to port 36673 2016-04-27 23:07:32,194 [INFO] [ServiceThread:org.apache.tez.dag.app.web.WebUIService] |mortbay.log|: jetty-6.1.26.cloudera.2 2016-04-27 23:07:32,232 [INFO] [ServiceThread:org.apache.tez.dag.app.web.WebUIService] |mortbay.log|: Extract jar:file:/opt/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/jars/hadoop-common-2.6.0-cdh5.6.0-tests.jar!/webapps/ to ./tmp/Jetty_0_0_0_0_36673_webapps____.4jk4fu/webapp 2016-04-27 23:07:32,784 [WARN] [ServiceThread:org.apache.tez.dag.app.web.WebUIService] |mortbay.log|: failed jsp: java.lang.NoSuchFieldError: IS_SECURITY_ENABLED 2016-04-27 23:07:32,790 [WARN] [ServiceThread:org.apache.tez.dag.app.web.WebUIService] |mortbay.log|: failed org.mortbay.jetty.webapp.WebAppContext@1af25560{/,jar:file:/opt/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/jars/hadoop-common-2.6.0-cdh5.6.0-tests.jar!/webapps/}: java.lang.NoSuchFieldError: IS_SECURITY_ENABLED 2016-04-27 23:07:32,791 [WARN] [ServiceThread:org.apache.tez.dag.app.web.WebUIService] |mortbay.log|: failed ContextHandlerCollection@1bc31f72: java.lang.NoSuchFieldError: IS_SECURITY_ENABLED 2016-04-27 23:07:32,791 [ERROR] [ServiceThread:org.apache.tez.dag.app.web.WebUIService] |mortbay.log|: Error starting handlers java.lang.NoSuchFieldError: IS_SECURITY_ENABLED at org.apache.jasper.compiler.JspRuntimeContext.<init>(JspRuntimeContext.java:197) at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:150) at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:736) at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:888) at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:273) at org.apache.tez.dag.app.web.WebUIService.serviceStart(WebUIService.java:91) at org.apache.hadoop.service.AbstractService.start(AbstractService.java:193) at org.apache.tez.dag.app.DAGAppMaster$ServiceWithDependency.start(DAGAppMaster.java:1783) at org.apache.tez.dag.app.DAGAppMaster$ServiceThread.run(DAGAppMaster.java:1801)