Baymine opened a new pull request, #66283:
URL: https://github.com/apache/doris/pull/66283

   ### What problem does this PR solve?
   
   Issue Number: close #66282
   
   Problem Summary:
   A fragment's pipeline count is built at runtime per backend (`add_pipeline` 
reacts to data distribution and local-exchange injection), so backends of one 
fragment can legitimately report different pipeline counts. 
`ExecutionProfile.getMultiBeProfile()` takes `pipelineSize` as the max across 
backends, then indexed every backend at that position, throwing 
`IndexOutOfBoundsException` on the backends with fewer pipelines and dropping 
the entire merged profile for the query. This adds a bounds check so backends 
with fewer pipelines are skipped at the higher indices.
   
   ### Release note
   
   Fix IndexOutOfBoundsException in merged profile generation when backends of 
a fragment report uneven pipeline counts.
   
   ### Check List (For Author)
   
   - [x] Test <!-- At least one of them must be included. -->
       - [x] Regression test
       - [x] Unit Test
       - [ ] Manual test (add detailed scripts or steps below)
       - [ ] No need to test or manual test. Explain why:
   
   - [x] Behavior changed:
       - [x] No.
   
   - [x] Does this need documentation?
       - [x] No.
   
   <!-- ExecutionProfileTest.testAggregatedProfileUnevenPipelineCounts 
reproduces the crash (Index 1 out of bounds for length 1) before the fix and 
passes after. -->


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