github-actions[bot] commented on code in PR #67322:
URL: https://github.com/apache/doris/pull/67322#discussion_r3931960993
##########
fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudClusterChecker.java:
##########
@@ -185,14 +185,14 @@ private void updateStatus(List<Backend> currentBes,
List<Cloud.NodeInfoPB> expec
}
if (status == Cloud.NodeStatusPB.NODE_STATUS_DECOMMISSIONING) {
- if (!be.isDecommissioned()) {
+ if (!be.isDecommissioning()) {
LOG.info("decommissioned backend: {} status: {}", be,
status);
try {
((CloudEnv)
Env.getCurrentEnv()).getCloudUpgradeMgr().registerWaterShedTxnId(be.getId());
+ be.setDecommissioning(true);
} catch (UserException e) {
Review Comment:
[P1] Close load admission before taking the watershed
`registerWaterShedTxnId` captures `W` while this backend is still
selectable. A concurrent INSERT can begin `T > W` and finalize its sink onto
this BE before `setDecommissioning(true)`; `CloudUpgradeMgr` drains only `[0,
W)`, and if that load is paused before execution it has no WAL to block
`checkDecommissionState`, so the BE can be marked inactive/decommissioned
underneath it. Please establish a strict admission barrier before capturing `W`
and track registration pending/completed separately so failures remain
retryable; add a barrier-based test for this interleaving.
--
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]