Marcus, Nice.
I think it is because of the inconsistent between hypervisor and virtual machines , for instance, hypervisor thinks volume is attached but in fact not. It happens in some cases: (1) attach volume when VM starting. To avoid it, it is better to allow attach/detach only when vm is running or stopped. (2) vm does not support hotplug. In CentOS 6.X, it is built-in (CONFIG_HOTPLUG_PCI_ACPI=y in /boot/config-2.6.32*). For some other OS, it is set to "m" , not "y", If so, acpiphp module is needed. -Wei 2013/7/16 edison su (JIRA) <j...@apache.org> > > [ > https://issues.apache.org/jira/browse/CLOUDSTACK-2725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13710252#comment-13710252] > > edison su commented on CLOUDSTACK-2725: > --------------------------------------- > > Marcus, did you try the way I posted? detach an existing datadisk(which is > added in the vm xml file), then attach the same disk, with the same device > id. > > > [Automation] Re-attaching volume on VM failing in KVM > > ----------------------------------------------------- > > > > Key: CLOUDSTACK-2725 > > URL: > https://issues.apache.org/jira/browse/CLOUDSTACK-2725 > > Project: CloudStack > > Issue Type: Bug > > Security Level: Public(Anyone can view this level - this is the > default.) > > Components: Volumes > > Affects Versions: 4.2.0 > > Environment: Automation environment KVM > > Found in master also (8d1189c2ae87216bc1c4a1443f75e9a8629abdc2) > > Reporter: Rayees Namathponnan > > Assignee: Fang Wang > > Priority: Blocker > > Fix For: 4.2.0 > > > > Attachments: CLOUDSTACK-2725.rar > > > > > > Below two test case failing from BVT > > integration.smoke.test_volumes.TestVolumes.test_08_resize_volume > > integration.smoke.test_volumes.TestVolumes.test_09_delete_detached_volume > > Steps to reproduce > > Step 1 : Create an account, service offering, create volume, create VM > > Step 2 : Attach volume to VM , > > Step 3 : Detach volume > > Step 4 : Attach volume to VM again > > Actual result > > Attachment failed with below error > > 2013-05-28 13:45:39,101 DEBUG [agent.transport.Request] > (Job-Executor-98:job-1246) Seq 5-258539658: Rec > > eived: { Ans: , MgmtId: 29066118877352, via: 5, Ver: v1, Flags: 10, { > AttachAnswer } } > > 2013-05-28 13:45:39,106 ERROR [cloud.async.AsyncJobManagerImpl] > (Job-Executor-98:job-1246) Unexpected e > > xception while executing > org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd > > com.cloud.utils.exception.CloudRuntimeException: Failed to attach > volume: TestDiskServ to VM: ce79edb6- > > a306-4ac4-95e4-6202800f691e; org.libvirt.LibvirtException: internal > error unable to execute QEMU comman > > d '__com.redhat_drive_add': Duplicate ID 'drive-virtio-disk1' for drive > > at > com.cloud.storage.VolumeManagerImpl.sendAttachVolumeCommand(VolumeManagerImpl.java:1583) > > at > com.cloud.storage.VolumeManagerImpl.attachVolumeToVM(VolumeManagerImpl.java:1788) > > at > com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercep > > t(ComponentInstantiationPostProcessor.java:125) > > at > org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd.execute(AttachVolumeCmd.java:1 > > 22) > > at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:155) > > at > com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:437) > > 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) > > 2013-05-28 13:45:39,107 DEBUG [cloud.async.AsyncJobManagerImpl] > (Job-Executor-98:job-1246) Complete asy > > nc job-1246, jobStatus: 2, resultCode: 530, result: Error Code: 530 > Error text: Failed to attach volume > > : TestDiskServ to VM: ce79edb6-a306-4ac4-95e4-6202800f691e; > org.libvirt.LibvirtException: internal erro > > -- > This message is automatically generated by JIRA. > If you think it was sent incorrectly, please contact your JIRA > administrators > For more information on JIRA, see: http://www.atlassian.com/software/jira >