You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Likitha Shetty (JIRA)" <ji...@apache.org> on 2014/07/08 08:49:34 UTC

[jira] [Commented] (CLOUDSTACK-7077) Quickly attaching multiple data disks to a VM fails

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-7077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14054579#comment-14054579 ] 

Likitha Shetty commented on CLOUDSTACK-7077:
--------------------------------------------

This is only reproducible when we try to attach volumes to a VM IN fast succession.
In VMware following 2 steps are followed during disk attach to a VM
1. Preparing the disk that needs to be attached
2. Re-configuring the VM to attach the prepared disk device

Step 1 involves figuring out what should be the device number on the controller key that the disk will be connected to.
Step 1 and Step 2 are not synchronized in our code. So when we try to attach to 2 disks in quick succession, while preparing the second disk if the VM is still being re-configured with the first disk (i.e. Step 2 is in progress for the first disk), then device number of the first disk will be chosen for the second disk too. And this will result in Invalid configuration for device 'x' error where x is the device number on the controller key that the first disk is connected to.

> Quickly attaching multiple data disks to a VM fails
> ---------------------------------------------------
>
>                 Key: CLOUDSTACK-7077
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-7077
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: VMware, Volumes
>    Affects Versions: 4.2.0
>            Reporter: Likitha Shetty
>            Assignee: Likitha Shetty
>            Priority: Critical
>             Fix For: 4.5.0
>
>
> When trying to attach multiple data disks to a VM in quick succession, AttachVolumeCmds consistently fail with the below exception -.
> {noformat}
> 2014-05-19 15:55:18,776 ERROR [storage.resource.VmwareStorageProcessor] (DirectAgent-xxx) AttachVolumeCommand failed due to Exception: java.lang.RuntimeException
> Message: Invalid configuration for device '0'.
> java.lang.RuntimeException: Invalid configuration for device '0'.
> at com.cloud.hypervisor.vmware.util.VmwareClient.waitForTask(VmwareClient.java:412)
> at com.cloud.hypervisor.vmware.mo.VirtualMachineMO.attachDisk(VirtualMachineMO.java:1026)
> at com.cloud.storage.resource.VmwareStorageProcessor.attachVolume(VmwareStorageProcessor.java:1281)
> at com.cloud.storage.resource.VmwareStorageProcessor.attachVolume(VmwareStorageProcessor.java:1216)
> at com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.execute(StorageSubsystemCommandHandlerBase.java:129)
> at com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.handleStorageCommands(StorageSubsystemCommandHandlerBase.java:55)
> at com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(VmwareResource.java:559)
> at com.cloud.agent.manager.DirectAgentAttache$Task.run(DirectAgentAttache.java:186)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:679)
> 2014-05-19 15:55:18,778 DEBUG [agent.manager.DirectAgentAttache] (DirectAgent-151:null) Seq 51-1760168847: Response Received:
> 2014-05-19 15:55:18,778 DEBUG [agent.transport.Request] (DirectAgent-151:null) Seq 51-1760168847: Processing: { Ans: , MgmtId: 345052289567, via: 51, Ver: v1, Flags: 10, [{"org.apache.cloudstack.storage.command.AttachAnswer":{"result":false,"details":"AttachVolumeCommand failed due to Exception: java.lang.RuntimeException\nMessage: Invalid configuration for device '0'.\n","wait":0}}] }
> 2014-05-19 15:55:18,778 DEBUG [agent.transport.Request] (Job-Executor-37:job-23717 = [ d261e185-5c78-407e-b3c4-f0d5fcf711df ]) Seq 51-1760168847: Received: { Ans: , MgmtId: 345052289567, via: 51, Ver: v1, Flags: 10,
> { AttachAnswer }
> }
> 2014-05-19 15:55:18,786 ERROR [cloud.async.AsyncJobManagerImpl] (Job-Executor-37:job-23717 = [ d261e185-5c78-407e-b3c4-f0d5fcf711df ]) Unexpected exception while executing org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd
> com.cloud.utils.exception.CloudRuntimeException: Failed to attach volume: psvgwin28c3pfeng [2] to VM: 37e328e4-c620-48a2-9e35-1fc5225d5a4b; AttachVolumeCommand failed due to Exception: java.lang.RuntimeException
> Message: Invalid configuration for device '0'.
> at com.cloud.storage.VolumeManagerImpl.sendAttachVolumeCommand(VolumeManagerImpl.java:1712)
> at com.cloud.storage.VolumeManagerImpl.attachVolumeToVM(VolumeManagerImpl.java:1944)
> at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
> at org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd.execute(AttachVolumeCmd.java:122)
> at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:158)
> at com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:531)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:679)
> 2014-05-19 15:55:18,789 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-37:job-23717 = [ d261e185-5c78-407e-b3c4-f0d5fcf711df ]) Complete async job-23717 = [ d261e185-5c78-407e-b3c4-f0d5fcf711df ], jobStatus: 2, resultCode: 530, result: Error Code: 530 Error text: Failed to attach volume: psvgwin28c3pfeng [2] to VM: 37e328e4-c620-48a2-9e35-1fc5225d5a4b; AttachVolumeCommand failed due to Exception: java.lang.RuntimeException
> Message: Invalid configuration for device '0'.
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)