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]

Reply via email to