Details
Description
Repro steps:
Create a LXC VM
Create a data disk on nfs storage
Attach the created disk to LXC VM
Bug:
We gets message unexpected exception
Expected Result :
1. Message should be more meaningful
2. We see exception raised in MS logs which should not be the case. we should handle it gracefully.
Ms log hows :
2014-09-04 10:45:33,826 DEBUG [c.c.a.t.Request] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325 ctx-b838130b) Seq 4-433471464134412663: Sending { Cmd , MgmtId: 233845178472723, via: 4(Rack3Pod1Host49), Ver: v1, Flags: 100011, [{"org.apache.cloudstack.storage.command.AttachCommand":{"disk":{"data":{"org.apache.cloudstack.storage.to.VolumeObjectTO":{"uuid":"47e710d5-c35f-4926-9be9-351f5f6a9955","volumeType":"DATADISK","dataStore":{"org.apache.cloudstack.storage.to.PrimaryDataStoreTO":{"uuid":"dfa2ec3c-d133-3284-8583-0a0845aa4424","id":1,"poolType":"NetworkFilesystem","host":"10.147.28.7","path":"/export/home/shweta/goleta.lxc.primary","port":2049,"url":"NetworkFilesystem://10.147.28.7/export/home/shweta/goleta.lxc.primary/?ROLE=Primary&STOREUUID=dfa2ec3c-d133-3284-8583-0a0845aa4424"}},"name":"Gunjan Das","size":5368709120,"path":"47e710d5-c35f-4926-9be9-351f5f6a9955","volumeId":23,"accountId":2,"format":"QCOW2","provisioningType":"THIN","id":23,"hypervisorType":"LXC"}},"diskSeq":1,"path":"47e710d5-c35f-4926-9be9-351f5f6a9955","type":"DATADISK","_details":{"managed":"false","storagePort":"2049","storageHost":"10.147.28.7","volumeSize":"5368709120"}},"vmName":"i-2-18-VM","inSeq":false,"wait":0}}] }
2014-09-04 10:45:33,898 DEBUG [c.c.a.t.Request] (AgentManager-Handler-3:ctx-66f694f1) Seq 4-433471464134412663: Processing: { Ans: , MgmtId: 233845178472723, via: 4, Ver: v1, Flags: 10, [{"org.apache.cloudstack.storage.command.AttachAnswer":{"result":false,"details":"org.libvirt.LibvirtException: unsupported configuration: Can't setup disk for non-block device","wait":0}}] }
2014-09-04 10:45:33,898 DEBUG [c.c.a.t.Request] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325 ctx-b838130b) Seq 4-433471464134412663: Received: { Ans: , MgmtId: 233845178472723, via: 4, Ver: v1, Flags: 10,
}
2014-09-04 10:45:33,900 ERROR [c.c.v.VmWorkJobHandlerProxy] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325 ctx-b838130b) Invocation exception, caused by: com.cloud.utils.exception.CloudRuntimeException: Failed to attach volume Gunjan Das to VM VM-b5938b03-420e-4f6c-8d60-2e0e086cd08b; org.libvirt.LibvirtException: unsupported configuration: Can't setup disk for non-block device
2014-09-04 10:45:33,900 INFO [c.c.v.VmWorkJobHandlerProxy] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325 ctx-b838130b) Rethrow exception com.cloud.utils.exception.CloudRuntimeException: Failed to attach volume Gunjan Das to VM VM-b5938b03-420e-4f6c-8d60-2e0e086cd08b; org.libvirt.LibvirtException: unsupported configuration: Can't setup disk for non-block device
2014-09-04 10:45:33,900 DEBUG [c.c.v.VmWorkJobDispatcher] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325) Done with run of VM work job: com.cloud.storage.VmWorkAttachVolume for VM 18, job origin: 324
2014-09-04 10:45:33,900 ERROR [c.c.v.VmWorkJobDispatcher] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325) Unable to complete AsyncJobVO
, job origin:324
com.cloud.utils.exception.CloudRuntimeException: Failed to attach volume Gunjan Das to VM VM-b5938b03-420e-4f6c-8d60-2e0e086cd08b; org.libvirt.LibvirtException: unsupported configuration: Can't setup disk for non-block device
at com.cloud.storage.VolumeApiServiceImpl.sendAttachVolumeCommand(VolumeApiServiceImpl.java:2252)
at com.cloud.storage.VolumeApiServiceImpl.orchestrateAttachVolumeToVM(VolumeApiServiceImpl.java:1220)
at com.cloud.storage.VolumeApiServiceImpl.orchestrateAttachVolumeToVM(VolumeApiServiceImpl.java:2619)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.cloud.vm.VmWorkJobHandlerProxy.handleVmWorkJob(VmWorkJobHandlerProxy.java:107)
at com.cloud.storage.VolumeApiServiceImpl.handleVmWorkJob(VolumeApiServiceImpl.java:2658)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy185.handleVmWorkJob(Unknown Source)
at com.cloud.vm.VmWorkJobDispatcher.runJob(VmWorkJobDispatcher.java:102)
at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:503)
at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:460)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
2014-09-04 10:45:33,905 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325) Complete async job-325, jobStatus: FAILED, resultCode: 0, result: rO0ABXNyABpqYXZhLmxhbmcuUnVudGltZUV4Y2VwdGlvbp5fBkcKNIPlAgAAeHIAE2phdmEubGFuZy5FeGNlcHRpb27Q_R8-GjscxAIAAHhyABNqYXZhLmxhbmcuVGhyb3dhYmxl1cY1Jzl3uMsDAARMAAVjYXVzZXQAFUxqYXZhL2xhbmcvVGhyb3dhYmxlO0wADWRldGFpbE1lc3NhZ2V0ABJMamF2YS9sYW5nL1N0cmluZztbAApzdGFja1RyYWNldAAeW0xqYXZhL2xhbmcvU3RhY2tUcmFjZUVsZW1lbnQ7TAAUc3VwcHJlc3NlZEV4Y2VwdGlvbnN0ABBMamF2YS91dGlsL0xpc3Q7eHBxAH4AB3QAzEpvYiBmYWlsZWQgZHVlIHRvIGV4Y2VwdGlvbiBGYWlsZWQgdG8gYXR0YWNoIHZvbHVtZSBHdW5qYW4gRGFzIHRvIFZNIFZNLWI1OTM4YjAzLTQyMGUtNGY2Yy04ZDYwLTJlMGUwODZjZDA4Yjsgb3JnLmxpYnZpcnQuTGlidmlydEV4Y2VwdGlvbjogdW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbjogQ2FuJ3Qgc2V0dXAgZGlzayBmb3Igbm9uLWJsb2NrIGRldmljZXVyAB5bTGphdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudDsCRio8PP0iOQIAAHhwAAAADXNyABtqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnRhCcWaJjbdhQIABEkACmxpbmVOdW1iZXJMAA5kZWNsYXJpbmdDbGFzc3EAfgAETAAIZmlsZU5hbWVxAH4ABEwACm1ldGhvZE5hbWVxAH4ABHhwAAAAcnQAIGNvbS5jbG91ZC52bS5WbVdvcmtKb2JEaXNwYXRjaGVydAAYVm1Xb3JrSm9iRGlzcGF0Y2hlci5qYXZhdAAGcnVuSm9ic3EAfgALAAAB93QAP29yZy5hcGFjaGUuY2xvdWRzdGFjay5mcmFtZXdvcmsuam9icy5pbXBsLkFzeW5jSm9iTWFuYWdlckltcGwkNXQAGEFzeW5jSm9iTWFuYWdlckltcGwuamF2YXQADHJ1bkluQ29udGV4dHNxAH4ACwAAADF0AD5vcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0Lk1hbmFnZWRDb250ZXh0UnVubmFibGUkMXQAG01hbmFnZWRDb250ZXh0UnVubmFibGUuamF2YXQAA3J1bnNxAH4ACwAAADh0AEJvcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0LmltcGwuRGVmYXVsdE1hbmFnZWRDb250ZXh0JDF0ABpEZWZhdWx0TWFuYWdlZENvbnRleHQuamF2YXQABGNhbGxzcQB-AAsAAABndABAb3JnLmFwYWNoZS5jbG91ZHN0YWNrLm1hbmFnZWQuY29udGV4dC5pbXBsLkRlZmF1bHRNYW5hZ2VkQ29udGV4dHEAfgAadAAPY2FsbFdpdGhDb250ZXh0c3EAfgALAAAANXEAfgAdcQB-ABp0AA5ydW5XaXRoQ29udGV4dHNxAH4ACwAAAC50ADxvcmcuYXBhY2hlLmNsb3Vkc3RhY2subWFuYWdlZC5jb250ZXh0Lk1hbmFnZWRDb250ZXh0UnVubmFibGVxAH4AFnEAfgAXc3EAfgALAAABzHEAfgARcQB-ABJxAH4AF3NxAH4ACwAAAdd0AC5qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVydAAORXhlY3V0b3JzLmphdmFxAH4AG3NxAH4ACwAAAQZ0AB9qYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrdAAPRnV0dXJlVGFzay5qYXZhcQB-ABdzcQB-AAsAAAR5dAAnamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9ydAAXVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmF0AAlydW5Xb3JrZXJzcQB-AAsAAAJndAAuamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlcnEAfgAscQB-ABdzcQB-AAsAAALpdAAQamF2YS5sYW5nLlRocmVhZHQAC1RocmVhZC5qYXZhcQB-ABdzcgAmamF2YS51dGlsLkNvbGxlY3Rpb25zJFVubW9kaWZpYWJsZUxpc3T8DyUxteyOEAIAAUwABGxpc3RxAH4ABnhyACxqYXZhLnV0aWwuQ29sbGVjdGlvbnMkVW5tb2RpZmlhYmxlQ29sbGVjdGlvbhlCAIDLXvceAgABTAABY3QAFkxqYXZhL3V0aWwvQ29sbGVjdGlvbjt4cHNyABNqYXZhLnV0aWwuQXJyYXlMaXN0eIHSHZnHYZ0DAAFJAARzaXpleHAAAAAAdwQAAAAAeHEAfgA4eA
2014-09-04 10:45:33,922 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325) Done executing com.cloud.storage.VmWorkAttachVolume for job-325
2014-09-04 10:45:33,958 ERROR [c.c.a.ApiAsyncJobDispatcher] (API-Job-Executor-44:ctx-68f59c97 job-324) Unexpected exception while executing org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin
java.lang.RuntimeException: Unexpected exception
at com.cloud.storage.VolumeApiServiceImpl.attachVolumeToVM(VolumeApiServiceImpl.java:1366)
at com.cloud.storage.VolumeApiServiceImpl.attachVolumeToVM(VolumeApiServiceImpl.java:1151)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy185.attachVolumeToVM(Unknown Source)
at org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin.execute(AttachVolumeCmdByAdmin.java:38)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:141)
at com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:108)
at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:503)
at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
at org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:460)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Job failed due to exception Failed to attach volume Gunjan Das to VM VM-b5938b03-420e-4f6c-8d60-2e0e086cd08b; org.libvirt.LibvirtException: unsupported configuration: Can't setup disk for non-block device
... 27 more
2014-09-04 10:45:33,958 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-44:ctx-68f59c97 job-324) Complete async job-324, jobStatus: FAILED, resultCode: 530, result: org.apache.cloudstack.api.response.ExceptionResponse/null/
2014-09-04 10:45:33,990 DEBUG [o.a.c.f.j.i.SyncQueueManagerImpl] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325) Sync queue (112) is currently empty
2014-09-04 10:45:33,991 INFO [o.a.c.f.j.i.AsyncJobMonitor] (Work-Job-Executor-75:ctx-4a189e50 job-324/job-325) Remove job-325 from job monitoring
2014-09-04 10:45:34,006 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] (API-Job-Executor-44:ctx-68f59c97 job-324) Done executing org.apache.cloudstack.api.command.admin.volume.AttachVolumeCmdByAdmin for job-324
2014-09-04 10:45:34,007 INFO [o.a.c.f.j.i.AsyncJobMonitor] (API-Job-Executor-44:ctx-68f59c97 job-324) Remove job-324 from job monitoring
2014-09-04 10:45:35,563 DEBUG [c.c.n.r.VirtualNetworkApplianceManagerImpl] (RouterStatusMonitor-1:ctx-5ee124fe) Found 0 routers to update status.
2014-09-04 10:45:35,564 DEBUG [c.c.n.r.VirtualNetworkApplianceManagerImpl] (RouterStatusMonitor-1:ctx-5ee124fe) Found 0 networks to update RvR status.