20XX-09-20 17:59:46,268 | ERROR | storage-fabric-activity-pool-809 | AttachDiskActivity | [Activity Execution] Uncaught Exception during Activity execution. Recent phase: com.vmware.vcloud.fabric.storage.disk.impl.AttachDiskActivity$InitialPhase@######## - Handle: urn:uuid:########-####-####-####-########, Current Phase: AttachDiskActivity$InitialPhase | requestId=########-####-####-####-########,request=POST https://vcd.example.local/api/vApp/vm-########-####-####-####-########/disk/action/attach,requestTime=1695200385545,remoteAddress=##.##.##.##:63244,userAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/2010...,accept=application/*+json;version 38.0.0-alpha vcd=########-####-####-####-########,task=########-####-####-####-######## activity=(com.vmware.vcloud.backendbase.management.system.TaskActivity,urn:uuid:########-####-####-####-########) activity=(com.vmware.vcloud.fabric.storage.disk.impl.AttachDiskActivity,urn:uuid:########-####-####-####-########)
java.util.concurrent.ExecutionException: org.hibernate.NonUniqueResultException: query did not return a unique result: 2
at com.vmware.vcloud.activity.executors.ActivityRunner.run(ActivityRunner.java:136)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.hibernate.NonUniqueResultException: query did not return a unique result: 2
at org.hibernate.impl.AbstractQueryImpl.uniqueElement(AbstractQueryImpl.java:844)
at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
at jdk.internal.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.vmware.vcloud.common.db.HibernateClassLoaderHelperBeanPostProcessor$SessionInvocationHandler.invoke(HibernateClassLoaderHelperBeanPostProcessor.java:280)
at com.sun.proxy.$Proxy147.uniqueResult(Unknown Source)
at com.vmware.vcloud.common.persist.CriteriaProxy.uniqueResult(CriteriaProxy.java:261)
at com.vmware.vcloud.inventory.dao.impl.HibernateHostDatastoreInvDao.findHostDatastore(HibernateHostDatastoreInvDao.java:54)
at com.vmware.vcloud.fabric.storage.disk.impl.AttachDiskActivity$InitialPhase.isDiskDatastoreInaccessibleFromVm(AttachDiskActivity.java:160)
at com.vmware.vcloud.fabric.storage.disk.impl.AttachDiskActivity$InitialPhase.invoke(AttachDiskActivity.java:129)
at com.vmware.vcloud.activity.executors.ActivityRunner.runPhase(ActivityRunner.java:175)
at com.vmware.vcloud.activity.executors.ActivityRunner.run(ActivityRunner.java:112)
... 5 more
VMware Cloud Director 10.x
This issue can happen when duplicated entries with the same combination of (vc_id, host_moref, datastore_moref) exist in managed_server_datastore_inv table.
When an user tries to attach a named disk with "share" flag to a VM, VMware Cloud Director verifies whether ESXi host the target VM is running on can access to a datastore containing the name disk.
If multiple entries are returned from managed_server_datastore_inv in checking whether combinations of (vc_id, host_moref, datastore_moref) exist, NonUniqueResultException is raised.
This is a known issue in VMware Cloud Director 10.4 and is fixed in VMware Cloud Director 10.5.1 .
This issue may be solved temporary by migrating this VM to another ESXi host.
If the destination ESXI host is not duplicated in the table, this attachment will succeed.