You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Yang Jie (Jira)" <ji...@apache.org> on 2025/03/28 03:12:00 UTC

[jira] [Commented] (SPARK-51603) logical circular dependency between modules `connect-client-jvm` and `assembly`

    [ https://issues.apache.org/jira/browse/SPARK-51603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17939118#comment-17939118 ] 

Yang Jie commented on SPARK-51603:
----------------------------------

Regarding the issue described in Jira, here are the possible solutions:

1. Try to create a new module named `connect-jvm-integration-testing` and move the tests related to `RemoteSparkSession` into this module. At the same time, make the `connect-jvm-integration-testing` module dependent on `connect-client-jvm`, `connect`, and `assembly`. The feasibility of this solution remains to be verified.

2. As I suggested in the pull request at https://github.com/apache/spark/pull/50396, automatically skip the tests related to `RemoteSparkSession` when the directory `assembly/target/scala-2.13/jars/` does not exist.

[~gurwls223]  WDYT? Additionally, do you think this issue could potentially block the release of version 4.0?

> logical circular dependency between modules `connect-client-jvm` and `assembly`
> -------------------------------------------------------------------------------
>
>                 Key: SPARK-51603
>                 URL: https://issues.apache.org/jira/browse/SPARK-51603
>             Project: Spark
>          Issue Type: Bug
>          Components: Connect, Tests
>    Affects Versions: 4.0.0
>            Reporter: Yang Jie
>            Priority: Major
>              Labels: pull-request-available
>
> After SPARK-48936, the `assembly` module is compiled prior to `connect-client-jvm` to facilitate the packaging output. However, tests related to RemoteSparkSession in the `connect-client-jvm` module depend on the packaged results from the `assembly` module, specifically the JARs located in `assembly/target/scala-2.13/jars/`. Since the latter is a convention, executing 
>  
> {code:java}
> build/mvn clean install -DskipTests {code}
>  
> will not produce any errors. But if we directly execute 
> {code:java}
> build/mvn clean install {code}
> we will encounter test errors similar to the following when testing the `connect-client-jvm` module:
>  
> {code:java}
> [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.044 s <<< FAILURE! – in org.apache.spark.sql.JavaEncoderSuite
> [ERROR] org.apache.spark.sql.JavaEncoderSuite – Time elapsed: 0.044 s <<< FAILURE!
> java.lang.AssertionError: assertion failed: Fail to locate the target folder: '/Users/yangjie01/SourceCode/git/spark-maven/sql/connect/server/target'. SPARK_HOME='/Users/yangjie01/SourceCode/git/spark-maven'. Make sure the spark project jars has been built (e.g. using build/sbt package)and the env variable `SPARK_HOME` is set correctly.
>   at scala.Predef$.assert(Predef.scala:279)
>   at org.apache.spark.sql.connect.test.IntegrationTestUtils$.tryFindJar(IntegrationTestUtils.scala:138)
>   at org.apache.spark.sql.connect.test.IntegrationTestUtils$.findJar(IntegrationTestUtils.scala:116)
>   at org.apache.spark.sql.connect.test.SparkConnectServerUtils$.sparkConnect$lzycompute(RemoteSparkSession.scala:65)
>   at org.apache.spark.sql.connect.test.SparkConnectServerUtils$.sparkConnect(RemoteSparkSession.scala:62)
>   at org.apache.spark.sql.connect.test.SparkConnectServerUtils$.start(RemoteSparkSession.scala:135)
>   at org.apache.spark.sql.connect.test.SparkConnectServerUtils$.createSparkSession(RemoteSparkSession.scala:181)
>   at org.apache.spark.sql.connect.test.SparkConnectServerUtils.createSparkSession(RemoteSparkSession.scala)
>   at org.apache.spark.sql.JavaEncoderSuite.setup(JavaEncoderSuite.java:42)
>   at java.base/java.lang.reflect.Method.invoke(Method.java:569)
>   at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>   Suppressed: java.lang.NullPointerException: Cannot invoke "org.apache.spark.sql.SparkSession.stop()" because "org.apache.spark.sql.JavaEncoderSuite.spark" is null
>     at org.apache.spark.sql.JavaEncoderSuite.tearDown(JavaEncoderSuite.java:47)
>     at java.base/java.lang.reflect.Method.invoke(Method.java:569)
>     at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
>     at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
>     ... 1 more
> [INFO] 
> [INFO] Results:
> [INFO] 
> [ERROR] Failures: 
> [ERROR]   JavaEncoderSuite.setup:42 assertion failed: Fail to locate the target folder: '/Users/yangjie01/SourceCode/git/spark-maven/sql/connect/server/target'. SPARK_HOME='/Users/yangjie01/SourceCode/git/spark-maven'. Make sure the spark project jars has been built (e.g. using build/sbt package)and the env variable `SPARK_HOME` is set correctly.
> [INFO] 
> [ERROR] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0 {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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