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

   ### What problem does this PR solve?
   
   Problem Summary:
   
   The disk monitor performs health checks synchronously. If a check or its 
error-handling path blocks indefinitely, the monitor cannot continue checking 
disks or complete the existing failure handling.
   
   Add an independent watchdog around startup data/spill directory checks and 
local StorageEngine disk health checks, including broken-path persistence, 
subsequent disk-state/failure handling, and warnings for invalid monitor 
intervals. Each operation is timed separately; normal monitor intervals are 
excluded. Supervision remains active while shutdown waits for the disk monitor.
   
   On timeout, the watchdog calls `_exit(74)` without logging, flushing, 
running fatal handlers, or joining threads. Existing handling of completed IO 
errors remains unchanged. This protects the existing probe paths; it does not 
provide per-disk isolation, cover every stalled business IO, or act as a 
general crash watchdog.
   
   The new translation unit is excluded from Storage unity batches to preserve 
their existing grouping and avoid exposing unrelated implicit include 
dependencies.
   
   ### Release note
   
   Add the static BE configuration `disk_health_check_timeout_seconds`, 
defaulting to `0` (disabled). A positive value enables supervision and makes a 
timeout in a protected operation terminate BE with exit status `74`. 
Configuration changes require a BE restart.
   
   ### Check List (For Author)
   
   - Test
       - [ ] Regression test
       - [ ] Unit Test
       - [ ] Manual test
       - [ ] No need to test or manual test.
   
     Targeted ASAN validation and clang-tidy are being rerun on this PR head. 
Results will be updated before this PR is marked ready for review. The 
validation uses the standard test entry point with a temporary selection of the 
relevant test sources and required helpers; this is not a full BE unit-test 
build.
   
     Full BE executable build/startup, startup fault injection, Linux kernel IO 
hangs, and cluster failover have not been validated.
   
   - Behavior changed:
       - [ ] No.
       - [x] Yes. A timeout terminates BE when the new configuration is 
enabled; the default is disabled.
   
   - Does this need documentation?
       - [ ] No.
       - [x] Yes. The new BE configuration needs a configuration-reference 
entry; no documentation PR is included yet.
   
   ### 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]

Reply via email to