qiuliang988 opened a new issue #1034:
URL: https://github.com/apache/incubator-kyuubi/issues/1034


   ### 1. Describe the bug
   The lock order for close operationLog is OperationLog -> RootLogger
   ```
   "FrontendServiceHandler-Pool: Thread-588":
       at org.apache.log4j.Category.callAppenders(Category.java:204)
       - waiting to lock <0x000000015fc4b7e8> (a 
org.apache.log4j.spi.RootLogger)
       at org.apache.log4j.Category.forcedLog(Category.java:391)
       at org.apache.log4j.Category.log(Category.java:856)
       at org.slf4j.impl.Log4jLoggerAdapter.error(Log4jLoggerAdapter.java:576)
       at org.apache.kyuubi.Logging.error(Logging.scala:78)
       at org.apache.kyuubi.Logging.error$(Logging.scala:76)
       at 
org.apache.kyuubi.operation.log.OperationLog.error(OperationLog.scala:86)
       at 
org.apache.kyuubi.operation.log.OperationLog.close(OperationLog.scala:137)
       - locked <0x00000002c3818180> (a 
org.apache.kyuubi.operation.log.OperationLog)
       at 
org.apache.kyuubi.engine.spark.operation.SparkOperation.$anonfun$close$1(SparkOperation.scala:142)
       at 
org.apache.kyuubi.engine.spark.operation.SparkOperation.$anonfun$close$1$adapted(SparkOperation.scala:142)
       at 
org.apache.kyuubi.engine.spark.operation.SparkOperation$$Lambda$2491/880482099.apply(Unknown
 Source)
       at scala.Option.foreach(Option.scala:407)
       at 
org.apache.kyuubi.engine.spark.operation.SparkOperation.close(SparkOperation.scala:142)
       at 
org.apache.kyuubi.operation.OperationManager.closeOperation(OperationManager.scala:103)
       at 
org.apache.kyuubi.session.AbstractSession.$anonfun$closeOperation$1(AbstractSession.scala:197)
       at 
org.apache.kyuubi.session.AbstractSession$$Lambda$2490/481951832.apply$mcZ$sp(Unknown
 Source)
       at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:23)
       at 
org.apache.kyuubi.session.AbstractSession.withAcquireRelease(AbstractSession.scala:78)
       at 
org.apache.kyuubi.session.AbstractSession.closeOperation(AbstractSession.scala:196)
       at 
org.apache.kyuubi.service.AbstractBackendService.closeOperation(AbstractBackendService.scala:154)
       at 
org.apache.kyuubi.service.FrontendService.CloseOperation(FrontendService.scala:447)
       at 
org.apache.hive.service.rpc.thrift.TCLIService$Processor$CloseOperation.getResult(TCLIService.java:1797)
       at 
org.apache.hive.service.rpc.thrift.TCLIService$Processor$CloseOperation.getResult(TCLIService.java:1782)
       at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
       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:286)
       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:748)
   ```
   and the lock order for log4j is RootLogger -> LogDivertAppender -> 
OperationLog
   ```
   "SparkSQLSessionManager-exec-pool: Thread-80018":
       at 
org.apache.kyuubi.operation.log.OperationLog.write(OperationLog.scala:96)
       - waiting to lock <0x00000002c3818180> (a 
org.apache.kyuubi.operation.log.OperationLog)
       at 
org.apache.kyuubi.operation.log.LogDivertAppender.subAppend(LogDivertAppender.scala:55)
       at org.apache.log4j.WriterAppender.append(WriterAppender.java:162)
       at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
       - locked <0x0000000161df65b0> (a 
org.apache.kyuubi.operation.log.LogDivertAppender)
       at 
org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
       at org.apache.log4j.Category.callAppenders(Category.java:206)
       - locked <0x000000015fc4b7e8> (a org.apache.log4j.spi.RootLogger)
       at org.apache.log4j.Category.forcedLog(Category.java:391)
       at org.apache.log4j.Category.log(Category.java:856)
       at org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:305)
       at org.apache.spark.internal.Logging.logInfo(Logging.scala:57)
       at org.apache.spark.internal.Logging.logInfo$(Logging.scala:56)
       at 
org.apache.spark.scheduler.DAGScheduler.logInfo(DAGScheduler.scala:114)
       at 
org.apache.spark.scheduler.DAGScheduler.cancelJobGroup(DAGScheduler.scala:988)
       at org.apache.spark.SparkContext.cancelJobGroup(SparkContext.scala:2519)
       at 
org.apache.kyuubi.engine.spark.operation.SparkOperation$$anonfun$onError$1.applyOrElse(SparkOperation.scala:96)
       at 
org.apache.kyuubi.engine.spark.operation.SparkOperation$$anonfun$onError$1.applyOrElse(SparkOperation.scala:92)
       at 
scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:38)
       at 
org.apache.kyuubi.engine.spark.operation.ExecuteStatement.$anonfun$executeStatement$1(ExecuteStatement.scala:137)
       at 
org.apache.kyuubi.engine.spark.operation.ExecuteStatement$$Lambda$2447/570798066.apply$mcV$sp(Unknown
 Source)
       at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
       at 
org.apache.kyuubi.engine.spark.operation.ExecuteStatement.withLocalProperties(ExecuteStatement.scala:219)
       at 
org.apache.kyuubi.engine.spark.operation.ExecuteStatement.org$apache$kyuubi$engine$spark$operation$ExecuteStatement$$executeStatement(ExecuteStatement.scala:86)
       at 
org.apache.kyuubi.engine.spark.operation.ExecuteStatement$$anon$2$$anon$3.run(ExecuteStatement.scala:172)
       at 
org.apache.kyuubi.engine.spark.operation.ExecuteStatement$$anon$2$$anon$3.run(ExecuteStatement.scala:169)
       at java.security.AccessController.doPrivileged(Native Method)
       at javax.security.auth.Subject.doAs(Subject.java:422)
       at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875)
       at 
org.apache.kyuubi.engine.spark.operation.ExecuteStatement$$anon$2.run(ExecuteStatement.scala:169)
       at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       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:748)
   ```
   The engine may be deadlocked.
   
   
   
   ### 2. Environments
   
   #### 2.1 Versions
   
   - Kyuubi
     - [ ] 1.3.0-SNAPSHOT
   
   - Spark
     - [ ] 3.1.1
   
   #### 2.2 Kyuubi Configurations
   
   #### 2.3 Spark Configurations
   
   
   ### 3. Steps to reproduce
   
   #### 3.1 Operations
   
   #### 3.2 Expected behavior
   
   <!-- A clear and concise description of what you expected to happen. -->
   
   #### 3.3 Actual behavior
   
   ### 4. Additional context
   
   #### 4.1 Log of the server
   
   #### 4.2 Log of the corresponding engine


-- 
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: dev-unsubscr...@kyuubi.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to