Client closed before SASL negotiation finished.
- Dominant language
- Scala
- Stars
- 963
- Forks
- 625
- Avg merge
- 6d 21h
- Merged PRs (30d)
- 6
Description
I cannot able to connect to spark from livy. When making request to create a session the session becomes dead with the following error.
**Versions:**
OS: macOS Sonoma 14.6.1
Python: 3.11.9
Spark: 3.5.4
Scala: 2.12
Livy: 0.8.0
**Error:**
`stderr:
25/02/11 20:01:19 WARN Utils: Your hostname, MacBook-Pro-7.local resolves to a loopback address: 127.0.0.1; using 192.168.0.100 instead (on interface en0)
25/02/11 20:01:19 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
25/02/11 20:01:19 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
25/02/11 20:01:19 INFO RSCDriver: Connecting to: 192.168.0.100:10000
25/02/11 20:01:19 INFO RSCDriver: Starting RPC server...
25/02/11 20:01:20 INFO RpcServer: Connected to the port 10001
25/02/11 20:01:20 WARN ClientConf: Your hostname, MacBook-Pro-7.local, resolves to a loopback address; using 192.168.0.100 instead (on interface en0)
25/02/11 20:01:20 WARN ClientConf: Set 'livy.rsc.rpc.server.address' if you need to bind to another address.
Exception in thread "main" java.util.concurrent.ExecutionException: javax.security.sasl.SaslException: Client closed before SASL negotiation finished.
at io.netty.util.concurrent.DefaultPromise.get(DefaultPromise.java:351)
at org.apache.livy.rsc.driver.RSCDriver.initializeServer(RSCDriver.java:203)
at org.apache.livy.rsc.driver.RSCDriver.run(RSCDriver.java:336)
at org.apache.livy.rsc.driver.RSCDriverBootstrapper.main(RSCDriverBootstrapper.java:93)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:1034)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:199)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:222)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:91)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1125)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1134)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: javax.security.sasl.SaslException: Client closed before SASL negotiation finished.
at org.apache.livy.rsc.rpc.Rpc$SaslClientHandler.dispose(Rpc.java:592)
at org.apache.livy.rsc.rpc.SaslHandler.channelInactive(SaslHandler.java:92)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)
at io.netty.handler.codec.ByteToMessageCodec.channelInactive(ByteToMessageCodec.java:118)
at org.apache.livy.rsc.rpc.KryoMessageCodec.channelInactive(KryoMessageCodec.java:97)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:303)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)
at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at java.base/java.lang.Thread.run(Thread.java:840)
25/02/11 20:01:20 INFO ShutdownHookManager: Shutdown hook called
25/02/11 20:01:20 INFO ShutdownHookManager: Deleting directory /private/var/folders/xc/s8y7cw_d4sld08rn88b4_7480000gp/T/spark-7f7a4d73-f5c0-45e1-9f44-bbfbceecaa1e`
Below are my configurations:
**spark-default.conf:**
```
## spark-default.conf:
spark.master local[*]
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.default.parallelism 4
spark.driver.memory 5g
spark.driver.cores 4
spark.driver.memory 6g
spark.driver.host 192.168.0.100
spark.executor.cores 4
spark.executor.memory 6g
spark.executor.instances 6
spark.sql.adaptive.enabled true
spark.sql.adaptive.join.enabled true
spark.sql.caseSensitive true
spark.sql.crossJoin.enabled true
spark.shuffle.service.enabled true
spark.dynamicAllocation.enabled true
spark.authenticate false
spark.authenticate.enableSasl false
spark.yarn.security.tokens.enabled false
spark.security.credentials.hdfs.enabled false
spark.network.timeout 600s
```
**Livy.conf**
```
## Livy.conf
livy.rsc.auth.enabled=false
livy.rsc.rpc.server.address=192.168.0.100
livy.rsc.launcher.port.range=11000~11100
livy.server.session.timeout=600000
livy.server.rpc.timeout=600000
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing session creation with the listed Spark and Livy configurations, then trace the failure from RSCDriver.initializeServer in RSCDriver.java through Rpc.java and SaslHandler.java. Compare the configured RPC address and authentication settings with the connection logs. Done means the cause of the SASL handshake closure is identified and a session remains alive after creation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, scala, spark
- Domain
- api, backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100