Pearl1594 opened a new issue #5925:
URL: https://github.com/apache/cloudstack/issues/5925
<!--
Verify first that your issue/request is not already reported on GitHub.
Also test if the latest release and main branch are affected too.
Always add information AFTER of these HTML comments, but no need to delete
the comments.
-->
##### ISSUE TYPE
<!-- Pick one below and delete the rest -->
* Bug Report
##### COMPONENT NAME
<!--
Categorize the issue, e.g. API, VR, VPN, UI, etc.
-->
~~~
VM deployment (and probably other operations, that depend on CopyCommand)
~~~
##### CLOUDSTACK VERSION
<!--
New line separated list of affected versions, commit ID for issues on main
branch.
-->
~~~
Observed the bahaviour on 4.11.3 to 4.16
~~~
##### CONFIGURATION
<!--
Information about the configuration if relevant, e.g. basic network,
advanced networking, etc. N/A otherwise
-->
##### OS / ENVIRONMENT
<!--
Information about the environment if relevant, N/A otherwise
-->
Vmware / Centos 7
##### SUMMARY
<!-- Explain the problem/feature briefly -->
On VMware, It was observed that when a volume migration command is in
progress (whose executeInSequence parameter is always true) is followed by a VM
deployment operation, the CopyCommand triggered by the clone volume operation
waits until volume migration completes. Based on
https://github.com/apache/cloudstack/blob/main/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/guru/VMwareGuru.java#L233-L241
if vmware.create.full.clone is false, then it shouldn't wait for volume
migration to complete.
The reason for this behavior is that when it goes through all the hypervisor
Gurus, at VMware guru, the execute in sequence is set to false, but when it
then goes to XenServerGuru, it gets reset to true
(https://github.com/apache/cloudstack/blob/main/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/XenServerGuru.java#L183
- as CopyCommand is an instance of StorageSubSystemCommand)
##### STEPS TO REPRODUCE
<!--
For bugs, show exactly how to reproduce the problem, using a minimal
test-case. Use Screenshots if accurate.
For new features, show how the feature would be used.
-->
<!-- Paste example playbooks or commands between quotes below -->
~~~
1. Initiate a Volume migration - take note of the host to which the command
(MigrateVolumeCommand) is sent
2. Deploy a VM on the same host as the one handling volume migration
3. Ensure the following global settings:
- execute.in.sequence.hypervisor.command &
- vmware.create.full.clone
are false
4. Notice that the copy command waits until MigrateVolumeCommand completes
~~~
<!-- You can also paste gist.github.com links for larger files -->
##### EXPECTED RESULTS
<!-- What did you expect to happen when running the steps above? -->
~~~
The 2 commands run concurrently when the required global settings are false
~~~
##### ACTUAL RESULTS
<!-- What actually happened? -->
<!-- Paste verbatim command output between quotes below -->
~~~
CopyCommand waits for MigrateVolumeCommand to complete
~~~
Some debug logs to help visualize the issue:
**On enabling remote debugging** - notice executeInSequence is false

On the command that is actually sent to the host:

--
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]