HappenLee opened a new pull request, #66443:
URL: https://github.com/apache/doris/pull/66443
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: TopN lazy materialization sends reusable rowid-fetch RPC
requests to every target backend. A backend request can contain no row IDs for
a batch, but a transport failure for that no-op request previously aborted the
query. If such a failure left no response blocks, response merging could also
read a missing or stale response. Ignore transport failures only when the
request has no rows, clear reused responses before dispatch, and skip
deserialization for empty per-relation requests. Requests containing rows and
all backend-reported errors still fail.
### Release note
Fix TopN lazy materialization queries that fail when an empty rowid-fetch
RPC encounters a transport error.
### Check List (For Author)
- Test
- [ ] Regression test
- [x] Unit Test
- ./run-be-ut.sh -j 48 --run
--filter=MaterializationSharedStateTest.* (8 tests passed)
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- Behavior changed:
- [ ] No.
- [x] Yes. Transport failures for rowid-fetch requests with no rows are
ignored; requests with rows and backend-reported errors still fail.
- Does this need documentation?
- [x] No.
- [ ] Yes.
--
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]