HappenLee opened a new pull request, #64934:
URL: https://github.com/apache/doris/pull/64934
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: Pipeline task execution is wrapped by
ASSIGN_STATUS_IF_CATCH_EXCEPTION, which converts Doris exceptions to Status but
lets std::exception-derived exceptions escape the scheduler worker thread. When
task execution throws an STL exception such as std::out_of_range, the worker
can terminate the BE process instead of returning a query error. This change
adds a scheduler-level std::exception fallback around the existing Doris
exception handling and converts it to an InternalError so the existing cancel
and close path handles the failed task. A unit test covers a task whose
execute() throws std::out_of_range.
### Release note
Fix pipeline task execution to return a query error for
std::exception-derived failures instead of aborting the backend.
### Check List (For Author)
- Test:
- Unit Test: ./run-be-ut.sh --run
--filter=PipelineTaskTest.TEST_SCHEDULER_CATCH_STD_EXCEPTION
- Manual test: PATH=/mnt/disk6/common/ldb_toolchain_toucan/bin:$PATH
build-support/clang-format.sh
- Manual test: PATH=/mnt/disk6/common/ldb_toolchain_toucan/bin:$PATH
build-support/check-format.sh
- Manual test: git diff --check
- Manual test: build-support/run-clang-tidy.sh --build-dir
be/ut_build_ASAN
- Behavior changed: Yes. std::exception-derived failures thrown from
pipeline task execution now become query errors instead of escaping the
scheduler worker.
- Does this need documentation: No
--
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]