HappenLee opened a new pull request, #65019:
URL: https://github.com/apache/doris/pull/65019
### What problem does this PR solve?
Issue Number: None
Related PR: #64934
Problem Summary: Backport #64934 to branch-4.1. 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 preserves branch-4.1's pipeline tracer logic,
converting std::exception failures to 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 -j 48 --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 upstream/branch-4.1..HEAD
- 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]