JNSimba opened a new pull request, #69989:
URL: https://github.com/apache/doris/pull/69989
### What problem does this PR solve?
Issue Number: None
Problem Summary:
A cloud Stream Load request can still arrive from a BE after scaling has
removed that BE from FE metadata. Resolving the compute group then obtains a
null backend and throws a NullPointerException, which reaches the caller as a
generic INTERNAL_ERROR.
Return a descriptive UserException containing the missing backend ID
instead. The existing RPC exception handler converts it to ANALYSIS_ERROR. The
request fails before plan generation, allowing the existing CDC task failure
and automatic rescheduling flow to handle recovery.
Add an RPC-level test for a missing backend with token authentication and a
compute-group header. It checks the returned status and backend ID, absence of
an execution plan, and ConnectContext cleanup.
### Release note
Cloud Stream Load requests referencing a removed backend now return an error
identifying that backend instead of a generic NullPointerException.
### Check List (For Author)
- Test
- [x] Unit Test: `bash run-fe-ut.sh --run
org.apache.doris.load.StreamLoadHandlerTest` on an isolated development-machine
directory: 15 tests passed. Before the fix, the new test failed because it
received INTERNAL_ERROR instead of ANALYSIS_ERROR.
- Checkstyle: `mvn checkstyle:check -pl fe-core`, 0 violations.
- Behavior changed:
- [x] Yes. A missing backend returns ANALYSIS_ERROR with its ID; CDC
scheduling and offset behavior are unchanged.
- Does this need documentation?
- [x] No.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]