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]

Reply via email to