Error "Unable to perform this action. Contact your cloud administrator." while attaching named disks to VMs in VMware Cloud Director
search cancel

Error "Unable to perform this action. Contact your cloud administrator." while attaching named disks to VMs in VMware Cloud Director

book

Article ID: 321889

calendar_today

Updated On:

Products

VMware Cloud Director

Issue/Introduction

  • Trying to attach a named disk with "share" flag to VMs, this operation is failed with a message "Unable to perform this action. Contact your cloud administrator."
  • In /opt/vmware/vcloud-director/logs/vcloud-container-debug.log, you can see entries similar to:

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

 

 

Environment

VMware Cloud Director 10.x

Cause

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.

Resolution

This is a known issue in VMware Cloud Director 10.4 and is fixed in VMware Cloud Director 10.5.1 .

Workaround:

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.