LemonCL commented on issue #68120: URL: https://github.com/apache/doris/issues/68120#issuecomment-5711034739
Thanks for the thorough review! All four points are addressed in the updated commit: 1. **Node identity checks**: matching now requires `cloud_unique_id` equality (when the request carries one) in addition to the endpoint (ip/host + heartbeat_port), so a stale or incorrect unique id can no longer flip a different node at the same endpoint. 2. **One-to-one matching**: `flip_nodes_status_in_place` now validates the full request first — every request node must match exactly one cluster node, and no two request nodes may claim the same node. Any violation returns a non-empty error before commit, with zero mutation. Negative tests added: unknown/stale unique id at an existing endpoint, endpoint mismatch, duplicated request entries, and a partially matched multi-node request (asserted to fail as a whole with nothing changed). 3. **Regression coverage**: kept the node count/order/status assertions (the order check deterministically fails the old delete + re-add implementation), and added the host-based endpoint matching path plus all the identity/error cases above. A sync-point based concurrency test is a nice follow-up; the in-place flip within a single FDB transaction makes the invariant structural rather than timing-dependent. 4. **Backport**: agreed — once this is validated on master, I'll prepare a separate, branch-specific PR for branch-3.1 (the handlers there are still inlined in the `alter_cluster` switch, so the change needs reshaping, plus its own testing). For incident evidence, I'll attach the correlated FE/MS log excerpts to the issue shortly. -- 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]
