waterWang opened a new pull request, #20128:
URL: https://github.com/apache/druid/pull/20128

   ### Description
   
   Fixes #19950
   
   When a historical server returns a non-200/404 response or is unreachable
   during `fetchSegmentLoadingCapabilities()`, the `HttpLoadQueuePeon` 
constructor
   throws an `RE`. This exception propagates through
   `LoadQueueTaskMaster.resetPeonsForNewServers()` into
   `PrepareBalancerAndLoadQueues`, which is the first duty in the
   `HistoricalManagementDuties` group. The top-level
   `DruidCoordinator.DutiesRunnable.run()` catches and logs the exception, but
   segment management (loading, balancing, handoffs) stops entirely for **all**
   servers — not just the unhealthy one. Ingestion tasks back up waiting for
   handoff.
   
   ### Changes
   
   - `fetchSegmentLoadingCapabilities()`: Instead of throwing `RE` on 
non-200/404
     responses or any `Throwable`, return default `SegmentLoadingCapabilities`
     derived from the configured batch size, with a warning log. The peon is 
still
     created, the server is still managed with conservative defaults, and the 
rest
     of the duty group proceeds normally.
   - Mirror the existing 404 branch's fallback behavior (already returned 
default
     capabilities).
   
   ### Key design decisions
   
   - The 404 branch already existed and returned default capabilities. The fix
     extends this same graceful degradation to non-200 responses and exceptions.
   - `log.makeAlert()` is preserved for non-200 responses so operators still get
     alerted about the unhealthy server.
   - The catch block now logs a warning instead of throwing, keeping the
     Coordinator ticking.
   
   ### Release notes
   
   Fixed a bug where a single unhealthy or unreachable historical server could
   stall all segment loading and balancing across the cluster.


-- 
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