LuciferYang opened a new issue, #12856:
URL: https://github.com/apache/gluten/issues/12856

   ### What happens
   
   `GlutenHiveSQLQuerySuite` creates a persistent Hive table, runs its 
assertions, and only then drops it. The drop is a plain statement after the 
`withSQLConf` block, not inside `withTable` or a `finally`, so any failure in 
between skips it. Two cases are written this way, and they also mix two cleanup 
paths: a `DROP TABLE IF EXISTS` at the top of the body and a 
`spark.sessionState.catalog.dropTable(...)` at the bottom.
   
   - `testGluten("hive orc scan")` (`test_orc`), e.g. 
`gluten-ut/spark35/src/test/scala/org/apache/spark/sql/hive/execution/GlutenHiveSQLQuerySuite.scala:41`
 with the drop at `:52`
   - `testGluten("avoid unnecessary filter binding for subfield during scan")` 
(`test_subfield`), same file at `:245` with the drop at `:259`
   
   Both exist in all five `gluten-ut/spark3x` / `spark4x` modules.
   
   ### Why it matters
   
   The Hive suites share one `TestHive` singleton, so a leftover table outlives 
the case that created it. When `checkAnswer` or `checkOperatorMatch` fails, the 
table stays in the metastore and the warehouse, and later cases in the same JVM 
see it. The `DROP TABLE IF EXISTS` at the top of the body only rescues a rerun 
inside the same session, which is not the case CI hits.
   
   ### History
   
   Not a new problem. `test_orc` predates the migration in every module. 
`test_subfield` came from `a662f3f75` (#3300, 2023) and was copied verbatim 
into 3.4/3.5/4.0/4.1 by #12840, which is where GitHub Copilot flagged it five 
review rounds in a row. It was left alone there on purpose: that PR was a 
migration, and rewriting a migrated case would have made it differ from both 
the 3.3 original and its own neighbour in the same file.
   
   ### Suggested fix
   
   Wrap the create/insert/assert work in `withTable("test_orc")` / 
`withTable("test_subfield")` and delete both manual drops. Do the two cases 
together across all five modules, otherwise the same file ends up carrying two 
different cleanup styles, which is worse than the current state.
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to