LuciferYang opened a new issue, #12441:
URL: https://github.com/apache/gluten/issues/12441
### Describe the bug
`InsertTransitions.applyForNode` handles the case where a child's
`Convention` is `isNone` (row type and batch type both `None`) by returning the
child unchanged:
```scala
if (from.isNone) {
// For example, a union op with row child and columnar child at the same
time,
// The plan is actually not executable, and we cannot tell about its
convention.
child
} else {
...
}
```
The pre-existing comment already notes that such a plan is not executable.
No production plan declares itself with both types as `None`, so this branch is
not reachable today. But if any future `GlutenPlan` ends up in that state, the
current code lets it pass through, and the failure surfaces later at task
execution as an unrelated error without a pointer to the offending node.
`Transitions.enforceReq` has the same latent hole via a different path: it
calls `Transition.Factory.findTransition` directly, which contains
`assert(!from.isNone, ...)` — an `AssertionError` without plan identity.
### Expected behavior
Both entry points should fail fast at planning time and name the offending
plan in the message. The check is defense-in-depth; it does not change behavior
for any currently-shipping plan.
Patch and tests are ready; will send a PR.
--
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]