bowenliang123 commented on PR #5221:
URL: https://github.com/apache/kyuubi/pull/5221#issuecomment-1700683008
> I think it's a reasonable approach. My concern is that the Flink engine
module depends on 2.13 modules like `kyuubi-common`, would that cause
compatibility issues?
It has been proved to cause compatibility issues when running a Flink Engine
module compiled with Scala 2.13 on Scala 2.12 runtime which is embedded inside
Flink. Either The engine itself or common modules like `kyuubi-common` depends
on Scala API implicitly. There are unavoidable breaking changes (e.g alias,
collections)between Scala 2.12 and Scala 2.13.
Take the following example, it's caused by the changes in
`scala.Serilizable`, as it extends Java's Serilizable in Scala 2.12 while it IS
Java's Serilizable in Scala 2.13.
```
PlanOnlyOperationSuite:
org.apache.kyuubi.engine.flink.operation.PlanOnlyOperationSuite *** ABORTED
***
java.lang.RuntimeException: Unable to load a Suite class
org.apache.kyuubi.engine.flink.operation.PlanOnlyOperationSuite that was
discovered in the runpath: java.lang.NoClassDefFoundError: scala/Serializable
at
org.scalatest.tools.DiscoverySuite$.getSuiteInstance(DiscoverySuite.scala:80)
at
org.scalatest.tools.DiscoverySuite.$anonfun$nestedSuites$1(DiscoverySuite.scala:38)
at scala.collection.immutable.Vector1.map(Vector.scala:1872)
at scala.collection.immutable.Vector1.map(Vector.scala:375)
at org.scalatest.tools.DiscoverySuite.<init>(DiscoverySuite.scala:37)
at org.scalatest.tools.Runner$.genDiscoSuites$1(Runner.scala:1131)
at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:1225)
at
org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24(Runner.scala:992)
at
org.scalatest.tools.Runner$.$anonfun$runOptionallyWithPassFailReporter$24$adapted(Runner.scala:970)
at
org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1481)
...
Cause: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError:
scala/Serializable
at org.apache.kyuubi.util.EnumUtils$.isValidEnums(EnumUtils.scala:27)
at
org.apache.kyuubi.config.TypedConfigBuilder.$anonfun$checkValues$2(ConfigBuilder.scala:212)
at
org.apache.kyuubi.config.TypedConfigBuilder.$anonfun$transform$1(ConfigBuilder.scala:170)
```
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]