[
https://issues.apache.org/jira/browse/LIVY-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
wangdengshan closed LIVY-1002.
------------------------------
Resolution: Invalid
> LivyThriftSessionManager killSparkApp may have NPE
> --------------------------------------------------
>
> Key: LIVY-1002
> URL: https://issues.apache.org/jira/browse/LIVY-1002
> Project: Livy
> Issue Type: Bug
> Components: Thriftserver
> Affects Versions: 0.8.0
> Reporter: wangdengshan
> Priority: Major
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> There may be a null pointer exception in killSparkApp. sparkApps will only
> put after the session is created. When the creation process fails, the kill
> application will not be successful.
> Below is my runtime stack:
> {color:#ff8b00}2024-05-30 03:39:12 [ERROR] [LivyServer2-Background-Pool:
> Thread-139977] org.apache.livy.thriftserver.LivyThriftSessionManager:error:58
> - Kill application failed{color}
> {color:#ff8b00}java.lang.NullPointerException{color}
> {color:#ff8b00} at
> org.apache.livy.thriftserver.LivyThriftSessionManager.killSparkApp$1(LivyThriftSessionManager.scala:148){color}
> {color:#ff8b00} at
> org.apache.livy.thriftserver.LivyThriftSessionManager.getLivySession(LivyThriftSessionManager.scala:180){color}
> {color:#ff8b00} at
> org.apache.livy.thriftserver.LivyExecuteStatementOperation.execute(LivyExecuteStatementOperation.scala:157){color}
> {color:#ff8b00} at
> org.apache.livy.thriftserver.LivyExecuteStatementOperation$$anon$1$$anon$2.run(LivyExecuteStatementOperation.scala:102){color}
> {color:#ff8b00} at
> org.apache.livy.thriftserver.LivyExecuteStatementOperation$$anon$1$$anon$2.run(LivyExecuteStatementOperation.scala:99){color}
> {color:#ff8b00} at java.security.AccessController.doPrivileged(Native
> Method){color}
> {color:#ff8b00} at
> javax.security.auth.Subject.doAs(Subject.java:422){color}
> {color:#ff8b00} at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:2248){color}
> {color:#ff8b00} at
> org.apache.livy.thriftserver.LivyExecuteStatementOperation$$anon$1.run(LivyExecuteStatementOperation.scala:112){color}
> {color:#ff8b00} at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511){color}
> {color:#ff8b00} at
> java.util.concurrent.FutureTask.run(FutureTask.java:266){color}
> {color:#ff8b00} at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149){color}
> {color:#ff8b00} at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624){color}
> {color:#ff8b00} at java.lang.Thread.run(Thread.java:748){color}
>
> {color:#172b4d}The key code is here{color}
> {code:java}
> def killSparkApp = {
> try {
> sparkApps.get(sessionHandle.toString).foreach(sparkApp => {
> info("Start kill spark job")
> sparkApp.kill()
> info("End kill spark job")
> })
> } catch {
> case ex: Throwable => error("Kill application failed", ex)
> } finally {
> sparkApps.remove(sessionHandle.toString)
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)