github-actions[bot] commented on code in PR #64392:
URL: https://github.com/apache/doris/pull/64392#discussion_r3393585822
##########
fe/fe-core/src/main/java/org/apache/doris/common/profile/RuntimeProfile.java:
##########
@@ -190,6 +190,24 @@ public boolean isEmpty() {
return childList.isEmpty();
}
+ public boolean areChildrenDone(int expectedChildNum) {
+ childLock.readLock().lock();
+ try {
+ if (childList.isEmpty() || childList.size() < expectedChildNum) {
Review Comment:
This can report `COMPLETE` before all backend profile reports have been
merged. `expectedChildNum` comes from `fragmentIdBeNum`, so it is a backend
count, but `childList.size()` counts profile nodes under the fragment. A single
BE report contains at least the fragment-level profile plus pipeline profiles
(`PipelineFragmentContext.collect_realtime_profile()` pushes the fragment
profile first, then each pipeline profile, and FE adds each one as a child).
For a fragment scheduled on two BEs with one pipeline, the first completed BE
contributes two done children, making `childList.size() == expectedChildNum`
and this method returns true even though the second BE has not reported yet.
The new REST state can therefore become `COMPLETE` while RF pruning counters
from another BE are still missing. Please track/report distinct backend
completions for each fragment, or compare against an expected child identity
set rather than the raw child-node count.
--
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]