jmsperu opened a new pull request, #13077: URL: https://github.com/apache/cloudstack/pull/13077
## Summary `LinstorDataMotionStrategy.copyAsync` (added in #12830 / Jan 29 2026) calls `LinstorUtil.createResource` on the destination pool's controller without first verifying the destination KVM host is registered as a LINSTOR satellite there. Two failure modes follow: 1. **Wrong-node placement.** The resource group's auto-placement filter picks a *different* registered satellite that is NOT the migration destination. The resource silently lands on the wrong node. The subsequent migrate then fails because the destination KVM host has no DRBD device for the resource. 2. **Opaque auto-place failure.** The auto-placement filter has no candidates and the LINSTOR API returns a generic error. Operator has to correlate the migration failure with an unrelated controller log entry to understand what went wrong. We've hit (1) on host-5 → host-6 migrations where host-6 was not registered as a LINSTOR satellite. The migration logs were unhelpful. ## Change Adds `verifyDestinationIsLinstorSatellite()` called at the top of `copyAsync`. For each LINSTOR-typed pool in `volumeDataStoreMap`: - Fetches the controller's node list via `LinstorUtil.getLinstorNodeNames` - If `destHost.getName()` is missing from the list, throws `CloudRuntimeException` with a clear actionable message that lists the known satellites and tells the operator to either `linstor node create` or pick a different destination - Silently skips on transient controller errors (so a controller hiccup doesn't block an otherwise valid migration — the existing flow surfaces the real failure downstream) Non-LINSTOR destination pools are skipped (mixed-storage migrations are unaffected). ## Test plan - [ ] CI build + unit tests - [ ] Manual: migrate a VM to a host that IS a LINSTOR satellite — works as before, no behaviour change - [ ] Manual: migrate a VM to a host that is NOT a LINSTOR satellite — fails fast with the new error message naming the host and listing known satellites -- 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]
