github-actions[bot] commented on code in PR #65049:
URL: https://github.com/apache/doris/pull/65049#discussion_r3499630317
##########
fe/fe-core/src/main/java/org/apache/doris/system/BeSelectionPolicy.java:
##########
@@ -156,6 +162,7 @@ private boolean isMatch(Backend backend) {
if (needScheduleAvailable && !backend.isScheduleAvailable()
|| needQueryAvailable && !backend.isQueryAvailable()
|| needLoadAvailable && !backend.isLoadAvailable()
+ || needNonDecommissioned && (backend.isDecommissioned() ||
backend.isDecommissioning())
|| (!resourceTags.isEmpty() &&
!resourceTags.contains(backend.getLocationTag()))
Review Comment:
This fixes the policy for the direct stream-load redirect and txn
stream-load paths, but the same FE-created stream-load surface still has
local-mode selectors that only require `needLoadAvailable()`. `UploadAction`
goes through `LoadSubmitter.Worker.load()`, which builds a direct
`/_stream_load` URL after `selectOneBackend()`, and `selectOneBackend()` still
uses only `new BeSelectionPolicy.Builder().needLoadAvailable().build()`.
`MysqlLoadManager.selectBackendForMySqlLoad()` does the same before returning a
`/_stream_load` URL in non-cloud mode. Since `Backend.isLoadAvailable()` only
checks alive/load-disabled/shutdown and does not exclude `isDecommissioned()`
or `isDecommissioning()`, those paths can still send new loads to a draining BE
after this PR. Please apply the new non-decommissioned policy to those local
stream-load selectors as well.
--
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]