[ 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)