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]

Reply via email to