You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@kyuubi.apache.org by "anandnalya (via GitHub)" <gi...@apache.org> on 2026/01/15 02:31:54 UTC
[I] [Bug] NumberFormatException when using ISO 8601 duration format for kyuubi.session.idle.timeout in Spark engine (1.11.0 regression) [kyuubi]
anandnalya opened a new issue, #7304:
URL: https://github.com/apache/kyuubi/issues/7304
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [x] I have searched in the [issues](https://github.com/apache/kyuubi/issues?q=is%3Aissue) and found no similar issues.
### Describe the bug
SparkSessionImpl fails to parse ISO 8601 duration format (e.g., `PT40M`) for `kyuubi.session.idle.timeout` passed via JDBC URL, throwing `NumberFormatException`.
### Regression introduced in
Commit 9a50bfa81 ([KYUUBI #7158])
### To Reproduce
Pass `kyuubi.session.idle.timeout=PT40M` in JDBC connection string.
### Error
```
java.lang.NumberFormatException: For input string: "PT40M"
at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.<init>(SparkSessionImpl.scala:63)
```
### Root Cause
`SparkSessionImpl.scala:63` uses `.toLong` directly instead of `Duration.parse()`:
```scala
conf.get(SESSION_IDLE_TIMEOUT.key)
.map(_.toLong) // BUG: should use Duration.parse()
```
### Expected behavior
Should parse ISO 8601 duration format like `ConfigBuilder.timeFromStr` does.
### Affects Version(s)
1.11.0
### Kyuubi Server Log Output
```logtalk
```
### Kyuubi Engine Log Output
```logtalk
2026-01-15 02:03:20,325 [WARN ] org.apache.kyuubi.jdbc.hive.KyuubiConnection: Could not open client transport with JDBC Uri: jdbc:hive2://kyuubi-hiyu.a8c.com:10009/default;retries=3;trustStorePassword=;?spark.sql.parquet.compression.codec=gzip;spark.yarn.queue=root.kyuubi;spark.sql.autobroadcastjointhreshold=-1;kyuubi.engine.share.level.subdomain=pythia;kyuubi.session.engine.idle.timeout=PT30M;kyuubi.session.idle.timeout=PT40M: org.apache.kyuubi.KyuubiSQLException: java.lang.NumberFormatException: For input string: "PT40M"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Long.parseLong(Long.java:711)
at java.base/java.lang.Long.parseLong(Long.java:836)
at scala.collection.StringOps$.toLong$extension(StringOps.scala:928)
at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.$anonfun$sessionIdleTimeoutThreshold$1(SparkSessionImpl.scala:63)
at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.$anonfun$sessionIdleTimeoutThreshold$1$adapted(SparkSessionImpl.scala:63)
at scala.Option.map(Option.scala:242)
at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.<init>(SparkSessionImpl.scala:63)
at org.apache.kyuubi.engine.spark.session.SparkSQLSessionManager.$anonfun$createSession$3(SparkSQLSessionManager.scala:170)
at scala.Option.getOrElse(Option.scala:201)
at org.apache.kyuubi.engine.spark.session.SparkSQLSessionManager.createSession(SparkSQLSessionManager.scala:155)
at org.apache.kyuubi.session.SessionManager.openSession(SessionManager.scala:105)
at org.apache.kyuubi.service.AbstractBackendService.openSession(AbstractBackendService.scala:45)
at org.apache.kyuubi.service.TFrontendService.getSessionHandle(TFrontendService.scala:182)
at org.apache.kyuubi.engine.spark.SparkTBinaryFrontendService.OpenSession(SparkTBinaryFrontendService.scala:78)
at org.apache.kyuubi.shaded.hive.service.rpc.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1595)
at org.apache.kyuubi.shaded.hive.service.rpc.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1575)
at org.apache.kyuubi.shaded.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.kyuubi.shaded.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
at org.apache.kyuubi.service.authentication.TSetIpAddressProcessor.process(TSetIpAddressProcessor.scala:35)
at org.apache.kyuubi.shaded.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
at org.apache.kyuubi.KyuubiSQLException$.apply(KyuubiSQLException.scala:69)
at org.apache.kyuubi.KyuubiSQLException$.apply(KyuubiSQLException.scala:81)
at org.apache.kyuubi.util.ThriftUtils$.verifyTStatus(ThriftUtils.scala:27)
at org.apache.kyuubi.client.KyuubiSyncThriftClient.openSession(KyuubiSyncThriftClient.scala:198)
at org.apache.kyuubi.session.KyuubiSessionImpl.$anonfun$openEngineSession$2(KyuubiSessionImpl.scala:181)
at org.apache.kyuubi.session.KyuubiSessionImpl.$anonfun$openEngineSession$2$adapted(KyuubiSessionImpl.scala:134)
at org.apache.kyuubi.ha.client.DiscoveryClientProvider$.withDiscoveryClient(DiscoveryClientProvider.scala:36)
at org.apache.kyuubi.session.KyuubiSessionImpl.$anonfun$openEngineSession$1(KyuubiSessionImpl.scala:134)
at org.apache.kyuubi.session.KyuubiSession.handleSessionException(KyuubiSession.scala:49)
at org.apache.kyuubi.session.KyuubiSessionImpl.openEngineSession(KyuubiSessionImpl.scala:134)
at org.apache.kyuubi.operation.LaunchEngine.$anonfun$runInternal$1(LaunchEngine.scala:60)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.RuntimeException: java.lang.NumberFormatException:For input string: "PT40M"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.lang.Long.parseLong(Long.java:711)
at java.lang.Long.parseLong(Long.java:836)
at scala.collection.StringOps$.toLong$extension(StringOps.scala:928)
at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.$anonfun$sessionIdleTimeoutThreshold$1(SparkSessionImpl.scala:63)
at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.$anonfun$sessionIdleTimeoutThreshold$1$adapted(SparkSessionImpl.scala:63)
at scala.Option.map(Option.scala:242)
at org.apache.kyuubi.engine.spark.session.SparkSessionImpl.<init>(SparkSessionImpl.scala:63)
at org.apache.kyuubi.engine.spark.session.SparkSQLSessionManager.$anonfun$createSession$3(SparkSQLSessionManager.scala:170)
at scala.Option.getOrElse(Option.scala:201)
at org.apache.kyuubi.engine.spark.session.SparkSQLSessionManager.createSession(SparkSQLSessionManager.scala:155)
at org.apache.kyuubi.session.SessionManager.openSession(SessionManager.scala:105)
at org.apache.kyuubi.service.AbstractBackendService.openSession(AbstractBackendService.scala:45)
at org.apache.kyuubi.service.TFrontendService.getSessionHandle(TFrontendService.scala:182)
at org.apache.kyuubi.engine.spark.SparkTBinaryFrontendService.OpenSession(SparkTBinaryFrontendService.scala:78)
at org.apache.kyuubi.shaded.hive.service.rpc.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1595)
at org.apache.kyuubi.shaded.hive.service.rpc.thrift.TCLIService$Processor$OpenSession.getResult(TCLIService.java:1575)
at org.apache.kyuubi.shaded.thrift.ProcessFunction.process(ProcessFunction.java:38)
at org.apache.kyuubi.shaded.thrift.TBaseProcessor.process(TBaseProcessor.java:38)
at org.apache.kyuubi.service.authentication.TSetIpAddressProcessor.process(TSetIpAddressProcessor.scala:35)
at org.apache.kyuubi.shaded.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:250)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.lang.Thread.run(Thread.java:840)
```
### Kyuubi Server Configurations
```yaml
```
### Kyuubi Engine Configurations
```yaml
```
### Additional context
_No response_
### Are you willing to submit PR?
- [x] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to fix.
- [ ] No. I cannot submit a PR at this time.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
Re: [I] [Bug] NumberFormatException when using ISO 8601 duration format for kyuubi.session.idle.timeout in Spark engine (1.11.0 regression) [kyuubi]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on issue #7304:
URL: https://github.com/apache/kyuubi/issues/7304#issuecomment-3752596772
Hello @anandnalya,
Thanks for finding the time to report the issue!
We really appreciate the community's efforts to improve Apache Kyuubi.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org
Re: [I] [Bug] NumberFormatException when using ISO 8601 duration format for kyuubi.session.idle.timeout in Spark engine (1.11.0 regression) [kyuubi]
Posted by "pan3793 (via GitHub)" <gi...@apache.org>.
pan3793 closed issue #7304: [Bug] NumberFormatException when using ISO 8601 duration format for kyuubi.session.idle.timeout in Spark engine (1.11.0 regression)
URL: https://github.com/apache/kyuubi/issues/7304
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@kyuubi.apache.org
For additional commands, e-mail: notifications-help@kyuubi.apache.org