This is an automated email from the ASF dual-hosted git repository.
yao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new 5ef99bda9863 [SPARK-50606][CONNECT] Fix NPE on uninitiated
SessionHolder
5ef99bda9863 is described below
commit 5ef99bda98636c8bdc98796ff8c8d0a6e731977d
Author: Kent Yao <[email protected]>
AuthorDate: Wed Dec 18 17:34:53 2024 +0800
[SPARK-50606][CONNECT] Fix NPE on uninitiated SessionHolder
### What changes were proposed in this pull request?
This PR fixes NPE like,
```scala
{"ts":"2024-12-18T05:41:52.977Z","level":"ERROR","msg":"Exception while
executing runnable
org.sparkproject.connect.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1MessagesAvailable418f1536","exception":{"class":"java.lang.NullPointerException","msg":"Cannot
invoke \"org.apache.spark.sql.connect.service.SessionHolder.userId()\" because
the return value of
\"org.apache.spark.sql.connect.service.SparkConnectAddArtifactsHandler.holder()\"
is null","stacktrace":[{"cl [...]
```
When I simply run case like,
```
scala> spark.sql("SHOW TABLES").schema
org.apache.spark.SparkException:
org.sparkproject.io.grpc.StatusRuntimeException: UNKNOWN: Application error
processing RPC
org.apache.spark.sql.connect.client.ArtifactManager.addArtifacts(ArtifactManager.scala:242)
org.apache.spark.sql.connect.client.ArtifactManager.uploadAllClassFileArtifacts(ArtifactManager.scala:205)
org.apache.spark.sql.connect.client.SparkConnectClient.execute(SparkConnectClient.scala:121)
org.apache.spark.sql.SparkSession.$anonfun$sql$3(SparkSession.scala:247)
org.apache.spark.sql.SparkSession.$anonfun$sql$3$adapted(SparkSession.scala:243)
org.apache.spark.sql.SparkSession.newDataset(SparkSession.scala:337)
org.apache.spark.sql.SparkSession.newDataFrame(SparkSession.scala:329)
org.apache.spark.sql.SparkSession.sql(SparkSession.scala:243)
org.apache.spark.sql.SparkSession.sql(SparkSession.scala:220)
org.apache.spark.sql.SparkSession.sql(SparkSession.scala:240)
ammonite.$sess.cmd6$Helper.<init>(cmd6.sc:1)
ammonite.$sess.cmd6$.<clinit>(cmd6.sc:7)
```
I believe it suppressed the actual cause
### Why are the changes needed?
bugfix
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
existing tests, (I do not know how to trigger this NPE in UT)
### Was this patch authored or co-authored using generative AI tooling?
no
Closes #49222 from yaooqinn/SPARK-50606.
Authored-by: Kent Yao <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
---
.../spark/sql/connect/service/SparkConnectAddArtifactsHandler.scala | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
a/sql/connect/server/src/main/scala/org/apache/spark/sql/connect/service/SparkConnectAddArtifactsHandler.scala
b/sql/connect/server/src/main/scala/org/apache/spark/sql/connect/service/SparkConnectAddArtifactsHandler.scala
index 72403016404c..3ba79402e99e 100644
---
a/sql/connect/server/src/main/scala/org/apache/spark/sql/connect/service/SparkConnectAddArtifactsHandler.scala
+++
b/sql/connect/server/src/main/scala/org/apache/spark/sql/connect/service/SparkConnectAddArtifactsHandler.scala
@@ -87,8 +87,8 @@ class SparkConnectAddArtifactsHandler(val responseObserver:
StreamObserver[AddAr
ErrorUtils.handleError(
"addArtifacts.onNext",
responseObserver,
- holder.userId,
- holder.sessionId,
+ req.getUserContext.getUserId,
+ req.getSessionId,
None,
false,
Some(() => {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]