This is an automated email from the ASF dual-hosted git repository.

mingliang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new f6f52e8718 [GLUTEN-10950][VL][FOLLOWUP] Fix missing time unit in 
hadoop-aws time configuration (pre-3.4 versions) (#11329)
f6f52e8718 is described below

commit f6f52e871812ef0ea0434d25b8ff374e46077f85
Author: xumanbu <[email protected]>
AuthorDate: Sat Jan 10 09:19:02 2026 +0800

    [GLUTEN-10950][VL][FOLLOWUP] Fix missing time unit in hadoop-aws time 
configuration (pre-3.4 versions) (#11329)
---
 .../backendsapi/velox/VeloxTransformerApi.scala    | 24 +++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git 
a/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxTransformerApi.scala
 
b/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxTransformerApi.scala
index 330086c1e6..a40e9ca6e4 100644
--- 
a/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxTransformerApi.scala
+++ 
b/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxTransformerApi.scala
@@ -70,11 +70,25 @@ class VeloxTransformerApi extends TransformerApi with 
Logging {
   override def postProcessNativeConfig(
       nativeConfMap: JMap[String, String],
       backendPrefix: String): Unit = {
-    // 'spark.hadoop.fs.s3a.connection.timeout' by velox requires time unit, 
hadoop-aws versions
-    // before 3.4 do not have time unit.
-    val s3sConnectionTimeout = 
nativeConfMap.get("spark.hadoop.fs.s3a.connection.timeout")
-    if (NumberUtils.isCreatable(s3sConnectionTimeout)) {
-      nativeConfMap.put("spark.hadoop.fs.s3a.connection.timeout", 
s"${s3sConnectionTimeout}ms")
+    // S3A configurations that require time units for Velox.
+    // Hadoop-aws versions before 3.4 do not include time units by default.
+    // scalastyle:off line.size.limit
+    // Reference: 
https://hadoop.apache.org/docs/r3.3.6/hadoop-aws/tools/hadoop-aws/#General_S3A_Client_configuration
+    // scalastyle:on line.size.limit
+    val s3aTimeConfigs = Map(
+      "spark.hadoop.fs.s3a.connection.timeout" -> "ms",
+      "spark.hadoop.fs.s3a.connection.establish.timeout" -> "ms",
+      "spark.hadoop.fs.s3a.threads.keepalivetime" -> "s",
+      "spark.hadoop.fs.s3a.multipart.purge.age" -> "s"
+    )
+
+    s3aTimeConfigs.foreach {
+      case (configKey, defaultUnit) =>
+        val configValue = nativeConfMap.get(configKey)
+        if (NumberUtils.isCreatable(configValue)) {
+          // Config is numeric (no unit), append the default unit for backward 
compatibility
+          nativeConfMap.put(configKey, s"$configValue$defaultUnit")
+        }
     }
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to