Skip to content

[Bug] execute scala code in Kyuubi  #3302

@zhaohehuhu

Description

@zhaohehuhu

Code of Conduct

Search before asking

  • I have searched in the issues and found no similar issues.

Describe the bug

I got three tasks implemented by Scala. Some variables were defined and used like the way that I'm using Spark. I fired three threads to run these tasks in parallel. However, one of tasks got failed because of NoSuchMethodError(meetingRevisedOutputSql is a variable I defined). When I run these task one by one, all tasks are successful.

Affects Version(s)

1.5.0

Kyuubi Server Log Output

 org.apache.kyuubi.shade.org.apache.hive.service.cli.HiveSQLException: Error operating EXECUTE_STATEMENT: org.apache.kyuubi.KyuubiSQLException: Interpret error:
java.lang.NoSuchMethodError: meetingRevisedOutputSql()Ljava/lang/String;
  at .lzycompute(<console>:13)
  at .$print(<console>:6)
  at $print(<console>)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:498)
  at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:747)
  at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1020)
  at scala.tools.nsc.interpreter.IMain.$anonfun$interpret$1(IMain.scala:568)
  at scala.reflect.internal.util.ScalaClassLoader.asContext(ScalaClassLoader.scala:36)
  at scala.reflect.internal.util.ScalaClassLoader.asContext$(ScalaClassLoader.scala:116)
  at scala.reflect.internal.util.AbstractFileClassLoader.asContext(AbstractFileClassLoader.scala:41)
  at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:567)
  at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:594)
  at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:564)
  at org.apache.kyuubi.engine.spark.repl.KyuubiSparkILoop.$anonfun$interpretWithRedirectOutError$2(KyuubiSparkILoop.scala:104)
  at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
  at scala.Console$.withErr(Console.scala:196)
  at org.apache.kyuubi.engine.spark.repl.KyuubiSparkILoop.$anonfun$interpretWithRedirectOutError$1(KyuubiSparkILoop.scala:104)
  at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
  at scala.Console$.withOut(Console.scala:167)
  at org.apache.kyuubi.engine.spark.repl.KyuubiSparkILoop.interpretWithRedirectOutError(KyuubiSparkILoop.scala:103)
  at org.apache.kyuubi.engine.spark.operation.ExecuteScala.$anonfun$runInternal$1(ExecuteScala.scala:67)
  at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
  at org.apache.kyuubi.engine.spark.operation.SparkOperation.withLocalProperties(SparkOperation.scala:88)
  at org.apache.kyuubi.engine.spark.operation.ExecuteScala.runInternal(ExecuteScala.scala:60)
  at org.apache.kyuubi.operation.AbstractOperation.run(AbstractOperation.scala:133)
  at org.apache.kyuubi.session.AbstractSession.runOperation(AbstractSession.scala:93)
  at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.runOperation(SparkSessionImpl.scala:66)
  at org.apache.kyuubi.session.AbstractSession.$anonfun$executeStatement$1(AbstractSession.scala:122)
  at org.apache.kyuubi.session.AbstractSession.withAcquireRelease(AbstractSession.scala:75)
  at org.apache.kyuubi.session.AbstractSession.executeStatement(AbstractSession.scala:119)
  at org.apache.kyuubi.service.AbstractBackendService.executeStatement(AbstractBackendService.scala:66)
  at org.apache.kyuubi.service.TFrontendService.ExecuteStatement(TFrontendService.scala:232)
  at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1557)
  at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1542)
  at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
  at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
  at org.apache.kyuubi.service.authentication.TSetIpAddressProcessor.process(TSetIpAddressProcessor.scala:36)
  at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  at java.lang.Thread.run(Thread.java:750)
	at org.apache.kyuubi.KyuubiSQLException$.apply(KyuubiSQLException.scala:69)
	at org.apache.kyuubi.engine.spark.operation.ExecuteScala.$anonfun$runInternal$1(ExecuteScala.scala:80)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at org.apache.kyuubi.engine.spark.operation.SparkOperation.withLocalProperties(SparkOperation.scala:88)
	at org.apache.kyuubi.engine.spark.operation.ExecuteScala.runInternal(ExecuteScala.scala:60)
	at org.apache.kyuubi.operation.AbstractOperation.run(AbstractOperation.scala:133)
	at org.apache.kyuubi.session.AbstractSession.runOperation(AbstractSession.scala:93)
	at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.runOperation(SparkSessionImpl.scala:66)
	at org.apache.kyuubi.session.AbstractSession.$anonfun$executeStatement$1(AbstractSession.scala:122)
	at org.apache.kyuubi.session.AbstractSession.withAcquireRelease(AbstractSession.scala:75)
	at org.apache.kyuubi.session.AbstractSession.executeStatement(AbstractSession.scala:119)
	at org.apache.kyuubi.service.AbstractBackendService.executeStatement(AbstractBackendService.scala:66)
	at org.apache.kyuubi.service.TFrontendService.ExecuteStatement(TFrontendService.scala:232)
	at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1557)
	at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1542)
	at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:38)
	at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
	at org.apache.kyuubi.service.authentication.TSetIpAddressProcessor.process(TSetIpAddressProcessor.scala:36)
	at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)

	at org.apache.kyuubi.jdbc.hive.Utils.verifySuccess(Utils.java:259)
	at org.apache.kyuubi.jdbc.hive.Utils.verifySuccessWithInfo(Utils.java:245)
	at org.apache.kyuubi.jdbc.hive.KyuubiStatement.runAsyncOnServer(KyuubiStatement.java:327)
	at org.apache.kyuubi.jdbc.hive.KyuubiStatement.executeWithConfOverlay(KyuubiStatement.java:249)
	at org.apache.kyuubi.jdbc.hive.KyuubiStatement.executeScala(KyuubiStatement.java:498)
	at KyuubiUtilTestv2$1.run(KyuubiUtilTestv2.java:251)
	at java.lang.Thread.run(Thread.java:750)

Kyuubi Engine Log Output

No response

Kyuubi Server Configurations

No response

Kyuubi Engine Configurations

No response

Additional context

No response

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions