github-actions[bot] commented on code in PR #65597:
URL: https://github.com/apache/doris/pull/65597#discussion_r3580141145


##########
be/src/exec/operator/operator.h:
##########
@@ -877,7 +889,23 @@ class OperatorXBase : public OperatorBase {
 
     Status terminate(RuntimeState* state) override;
     [[nodiscard]] Status get_block(RuntimeState* state, Block* block, bool* 
eos) {

Review Comment:
   This branch is active in the normal ASAN/ASAN_UT BE test builds because 
those flags do not define `NDEBUG`, so it changes more than a release-disabled 
path. Existing direct source tests still call `get_block()` once and assert the 
old rows/EOS contract, but they will now see `clone_empty()` with `eos=false` 
first. More seriously, several BE_TEST parent/child setups share the default 
operator id `-1` and only register the parent local state. In 
`AssertNumRowsOperatorTest`, the child `MockOperatorX` stores its real block in 
this pending slot, then the parent wrapper overwrites the same slot with its 
empty output before the child can replay, so the real child block is lost 
rather than merely delayed. Please avoid storing pending output in a 
local-state slot that nested operators can alias, or make the injection 
pipeline-boundary-only / give nested test operators distinct registered local 
states, and update the existing direct-call tests accordingly.



-- 
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