[ 
https://issues.apache.org/jira/browse/SPARK-32954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yang Jie updated SPARK-32954:
-----------------------------
    Description: 
When I tried to verify that the resource-managers yarn module passed all UTs in 
Scala 2.13 , I found that there are a classpath dependent badcase blocking the 
test because there are more than one `servlet-api` dependency in spark now:
 * one is `javax.servlet:javax.servlet-api:3.10:compile` we config in 
core/pom.xml,
 * the other is `jakarta.servlet:jakarta.servlet-api:4.0.3:test`  cascaded by 
`org.glassfish.jersey.test-framework.providers`, we can use `mvn 
dependency:tree` to check it .

So when we execute resource-managers yarn module test use

mvn clean test -pl resource-managers/yarn -Pyarn 

or 

mvn clean test -pl resource-managers/yarn -Pyarn -Pscala-2.13

 

if the position of `javax.servlet-api` in the  in classpath is before 
`jakarta.servlet-api`, there are some cases failed in YarnClusterSuite, 
YarnShuffleIntegrationSuite  and YarnShuffleAuthSuite.

 

The failed reason as follow:

 
{code:java}
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver: Exception in 
thread "main" java.lang.ExceptionInInitializerError
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:117)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:104)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.metrics.sink.MetricsServlet.getHandlers(MetricsServlet.scala:53)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.metrics.MetricsSystem.$anonfun$getServletHandlers$2(MetricsSystem.scala:93)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
scala.Option.map(Option.scala:230)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.metrics.MetricsSystem.getServletHandlers(MetricsSystem.scala:93)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.SparkContext.<init>(SparkContext.scala:582)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.yarn.YarnClusterDriver$.main(YarnClusterSuite.scala:413)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.yarn.YarnClusterDriver.main(YarnClusterSuite.scala)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
java.lang.reflect.Method.invoke(Method.java:498)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:934)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1013)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1022)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver: Caused by: 
java.lang.SecurityException: class "javax.servlet.http.HttpSessionIdListener"'s 
signer information does not match signer information of other classes in the 
same package
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
java.lang.ClassLoader.defineClass(ClassLoader.java:761)
20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
20/09/18 19:14:07.487 launcher-proc-1 INFO YarnClusterDriver:   at 
java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
20/09/18 19:14:07.487 launcher-proc-1 INFO YarnClusterDriver:   at 
java.net.URLClassLoader.access$100(URLClassLoader.java:73)
20/09/18 19:14:07.487 launcher-proc-1 INFO YarnClusterDriver:   at 
java.net.URLClassLoader$1.run(URLClassLoader.java:368)
{code}

  was:
When I tried to verify that the resource-managers yarn module passed all UTs in 
Scala 2.13 , I found that there are some problems blocking the test:
 # resource-managers/yarn module is not explicit dependency on sql/hive module 
but some case need HiveConf like `run Python application in yarn-client mode` 
in YarnClusterSuite, so we can't test resource-managers/yarn module 
independently as follow:
 ## mvn clean install -DskipTests -pl resource-managers/yarn -Pyarn 
-Pscala-2.13 -am
 ## mvn clean test -pl resource-managers/yarn -Pyarn -Pscala-2.13
 # There are more than one `servlet-api` dependency in spark now, one is 
`javax.servlet:javax.servlet-api:3.10:compile` we config in core/pom.xml, the 
other is `jakarta.servlet:jakarta.servlet-api:4.0.3:test`  cascaded by 
`org.glassfish.jersey.test-framework.providers`, we can use `mvn 
dependency:tree` to check it .So when we execute resource-managers yarn module 
test independently, if the position of 
`javax.servlet:javax.servlet-api:3.10:compile` in the  in classpath is before 
`jakarta.servlet:jakarta.servlet-api:4.0.3:test`, there are some cases failed 
in YarnClusterSuite, YarnShuffleIntegrationSuite  and YarnShuffleAuthSuite


> Add jakarta.servlet-api test dependency to yarn module to avoid classpath 
> badcase of UTs
> ----------------------------------------------------------------------------------------
>
>                 Key: SPARK-32954
>                 URL: https://issues.apache.org/jira/browse/SPARK-32954
>             Project: Spark
>          Issue Type: Improvement
>          Components: YARN
>    Affects Versions: 3.1.0
>            Reporter: Yang Jie
>            Priority: Minor
>
> When I tried to verify that the resource-managers yarn module passed all UTs 
> in Scala 2.13 , I found that there are a classpath dependent badcase blocking 
> the test because there are more than one `servlet-api` dependency in spark 
> now:
>  * one is `javax.servlet:javax.servlet-api:3.10:compile` we config in 
> core/pom.xml,
>  * the other is `jakarta.servlet:jakarta.servlet-api:4.0.3:test`  cascaded by 
> `org.glassfish.jersey.test-framework.providers`, we can use `mvn 
> dependency:tree` to check it .
> So when we execute resource-managers yarn module test use
> mvn clean test -pl resource-managers/yarn -Pyarn 
> or 
> mvn clean test -pl resource-managers/yarn -Pyarn -Pscala-2.13
>  
> if the position of `javax.servlet-api` in the  in classpath is before 
> `jakarta.servlet-api`, there are some cases failed in YarnClusterSuite, 
> YarnShuffleIntegrationSuite  and YarnShuffleAuthSuite.
>  
> The failed reason as follow:
>  
> {code:java}
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver: Exception in 
> thread "main" java.lang.ExceptionInInitializerError
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:117)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.ui.JettyUtils$.createServletHandler(JettyUtils.scala:104)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.metrics.sink.MetricsServlet.getHandlers(MetricsServlet.scala:53)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.metrics.MetricsSystem.$anonfun$getServletHandlers$2(MetricsSystem.scala:93)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> scala.Option.map(Option.scala:230)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.metrics.MetricsSystem.getServletHandlers(MetricsSystem.scala:93)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.SparkContext.<init>(SparkContext.scala:582)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.yarn.YarnClusterDriver$.main(YarnClusterSuite.scala:413)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.yarn.YarnClusterDriver.main(YarnClusterSuite.scala)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.lang.reflect.Method.invoke(Method.java:498)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:934)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1013)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1022)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver: Caused by: 
> java.lang.SecurityException: class 
> "javax.servlet.http.HttpSessionIdListener"'s signer information does not 
> match signer information of other classes in the same package
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.lang.ClassLoader.defineClass(ClassLoader.java:761)
> 20/09/18 19:14:07.486 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> 20/09/18 19:14:07.487 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
> 20/09/18 19:14:07.487 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.net.URLClassLoader.access$100(URLClassLoader.java:73)
> 20/09/18 19:14:07.487 launcher-proc-1 INFO YarnClusterDriver:   at 
> java.net.URLClassLoader$1.run(URLClassLoader.java:368)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to