You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@livy.apache.org by "wangdengshan (Jira)" <ji...@apache.org> on 2024/05/30 08:43:00 UTC
[jira] [Created] (LIVY-1002) LivyThriftSessionManager killSparkApp may have NPE
wangdengshan created LIVY-1002:
----------------------------------
Summary: 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
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)