mskapilks opened a new issue, #9245:
URL: https://github.com/apache/incubator-gluten/issues/9245

   ### Backend
   
   VL (Velox)
   
   ### Bug description
   
   Repro:
   ```scala
   import org.apache.spark.sql.functions.udf
   val plusOne = udf((x: Int) => x + 1)
   spark.udf.register("plusOne", plusOne)
   
   val df = sql("select plusOne((select plusOne(count(*)) from (values (1)) 
t0(inner_c))) as col from (values (2),(3)) t1(outer_c)")
   df.collect()
   ```
   Running this query with Spark 3.5 and Gluten 1.3 bundle
   give below error
   
   ```scala
   
   Caused by: org.apache.gluten.exception.GlutenException: Exception: 
VeloxRuntimeError
   Error Source: RUNTIME
   Error Code: INVALID_STATE
   Reason: Operator::getOutput failed for [operator: ValueStream, plan node ID: 
0]: Error during calling Java code from native code: 
java.lang.IllegalArgumentException: requirement failed: Subquery subquery#42, 
[id=#645] has not finished
           at scala.Predef$.require(Predef.scala:281)
           at 
org.apache.spark.sql.execution.ScalarSubquery.eval(subquery.scala:98)
           at 
org.apache.spark.sql.catalyst.expressions.IsNull.eval(nullExpressions.scala:354)
           at 
org.apache.spark.sql.catalyst.expressions.If.eval(conditionalExpressions.scala:89)
           at 
org.apache.spark.sql.catalyst.expressions.Alias.eval(namedExpressions.scala:158)
           at 
org.apache.gluten.expression.InterpretedArrowProjection.apply(InterpretedArrowProjection.scala:94)
           at 
org.apache.gluten.expression.InterpretedArrowProjection.apply(InterpretedArrowProjection.scala:35)
           at 
org.apache.gluten.execution.ColumnarPartialProjectExec.$anonfun$getProjectedBatchArrow$3(ColumnarPartialProjectExec.scala:248)
           at 
org.apache.gluten.execution.ColumnarPartialProjectExec.$anonfun$getProjectedBatchArrow$3$adapted(ColumnarPartialProjectExec.scala:246)
           at scala.collection.immutable.Range.foreach(Range.scala:158)
           at 
org.apache.gluten.execution.ColumnarPartialProjectExec.org$apache$gluten$execution$ColumnarPartialProjectExec$$getProjectedBatchArrow(ColumnarPartialProjectExec.scala:246)
           at 
org.apache.gluten.execution.ColumnarPartialProjectExec$$anon$1.next(ColumnarPartialProjectExec.scala:191)
           at 
org.apache.gluten.execution.ColumnarPartialProjectExec$$anon$1.next(ColumnarPartialProjectExec.scala:180)
           at scala.collection.Iterator$$anon$10.next(Iterator.scala:461)
           at 
scala.collection.TraversableOnce$FlattenOps$$anon$2.hasNext(TraversableOnce.scala:521)
           at 
org.apache.gluten.iterator.IteratorsV1$InvocationFlowProtection.hasNext(IteratorsV1.scala:159)
           at 
org.apache.gluten.iterator.IteratorsV1$PayloadCloser.hasNext(IteratorsV1.scala:37)
           at 
scala.collection.convert.Wrappers$IteratorWrapper.hasNext(Wrappers.scala:32)
           at 
org.apache.gluten.vectorized.ColumnarBatchInIterator.hasNext(ColumnarBatchInIterator.java:36)
           at 
org.apache.gluten.vectorized.ColumnarBatchOutIterator.nativeHasNext(Native 
Method)
           at 
org.apache.gluten.vectorized.ColumnarBatchOutIterator.hasNext0(ColumnarBatchOutIterator.java:57)
           at 
org.apache.gluten.iterator.ClosableIterator.hasNext(ClosableIterator.java:39)
           at 
scala.collection.convert.Wrappers$JIteratorWrapper.hasNext(Wrappers.scala:45)
           at 
org.apache.gluten.iterator.IteratorsV1$InvocationFlowProtection.hasNext(IteratorsV1.scala:159)
           at 
org.apache.gluten.iterator.IteratorsV1$IteratorCompleter.hasNext(IteratorsV1.scala:71)
           at 
org.apache.gluten.iterator.IteratorsV1$PayloadCloser.hasNext(IteratorsV1.scala:37)
           at 
org.apache.gluten.iterator.IteratorsV1$LifeTimeAccumulator.hasNext(IteratorsV1.scala:100)
           at scala.collection.Iterator.isEmpty(Iterator.scala:387)
           at scala.collection.Iterator.isEmpty$(Iterator.scala:387)
           at 
org.apache.gluten.iterator.IteratorsV1$LifeTimeAccumulator.isEmpty(IteratorsV1.scala:90)
           at 
org.apache.gluten.execution.VeloxColumnarToRowExec$.toRowIterator(VeloxColumnarToRowExec.scala:122)
           at 
org.apache.gluten.execution.VeloxColumnarToRowExec.$anonfun$doExecuteInternal$1(VeloxColumnarToRowExec.scala:78)
           at org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2(RDD.scala:858)
           at 
org.apache.spark.rdd.RDD.$anonfun$mapPartitions$2$adapted(RDD.scala:858)
           at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
           at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:367)
           at org.apache.spark.rdd.RDD.iterator(RDD.scala:331)
           at 
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:52)
           at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:367)
           at org.apache.spark.rdd.RDD.iterator(RDD.scala:331)
           at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:93)
           at 
org.apache.spark.TaskContext.runTaskWithListeners(TaskContext.scala:166)
           at org.apache.spark.scheduler.Task.run(Task.scala:141)
           at 
org.apache.spark.executor.Executor$TaskRunner.$anonfun$run$4(Executor.scala:620)
           at 
org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally(SparkErrorUtils.scala:64)
           at 
org.apache.spark.util.SparkErrorUtils.tryWithSafeFinally$(SparkErrorUtils.scala:61)
           at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:94)
           at 
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:623)
           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)
   ```
   
   It works after disabling partial project with 
`spark.gluten.sql.columnar.partial.project=false`.
   
   
   ### Spark version
   
   Spark-3.5.x
   
   ### Spark configurations
   
   _No response_
   
   ### System information
   
   _No response_
   
   ### Relevant logs
   
   ```bash
   
   ```


-- 
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: commits-unsubscr...@gluten.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@gluten.apache.org
For additional commands, e-mail: commits-h...@gluten.apache.org

Reply via email to