Deploying OVF Template fails with error "A fatal error has occurred"
search cancel

Deploying OVF Template fails with error "A fatal error has occurred"

book

Article ID: 378046

calendar_today

Updated On:

Products

VMware vCenter Server 7.0 VMware vCenter Server 8.0

Issue/Introduction

Fatal error has occurred.  Unable to Continue

Environment

vCenter 7.x
vCenter 8.x

Cause


The Content Library uses the vCenter FQDN in the fileurl to download the descriptor.ovf

Example:

fileUrl = https://vCenterFQDN:443/cls/data/xxxxxxxxxxxxxxx/descriptor.ovf

/var/log/vmware/content-library/cls.log

YYYY-MM-DDTHH:MM:SS | DEBUG    | lyod1rp1-221799-auto-4r54-h5:xxxxxx | cls-simple-activity-6     | ImportSessionActivity          | Start OVF import session with OVF_OPERATION_ID lyod1rp1-221799-auto-4r54-h5:xxxxxx, 

YYYY-MM-DDTHH:MM:SS | DEBUG    | lyod1rp1-221799-auto-4r54-h5:xxxxx | cls-simple-activity-6     | VcTaskService                  | Setting progress for task fdd8bf5d-1ca0-4b2e-912b-0fb65cc896ea (ManagedObjectReference: type = Task, value = task-73028, serverGuid = xxxxxxxxxx) from null to 0

YYYY-MM-DDTHH:MM:SS | DEBUG    | lyod1rp1-221799-auto-4r54-h5:xxxxx | cls-simple-activity-6     | ImportSessionActivity          | Initialized OVF import session: Info (com.vmware.vcenter.ovf.import_session.info) => {
    state = IMPORT_OVF_TRANSFER,
    progress = 0,
    fileTransferMode = <null>,
    files = [OvfFileInfo (com.vmware.vcenter.ovf.ovf_file_info) => {
    name = descriptor.ovf,
    fileType = OVF,
    optionalUpload = false,
    fileUrl = https://vCenterFQDN:443/cls/data/xxxxxxxx/descriptor.ovf,
    sslThumbPrint = <null>,
    uploadMethod = <null>,
    size = -1,
    bytesTransferred = 0,
    sha256 =
}],
    errors = [],
    warnings = [],
    information = [],
    vappId = <null>,
    vmId = <null>,
    customizationResults = {}
}

The task eventually times out when running script /usr/bin/dig, +short, vCenterFQDN, a
'Cannot get IPv4 address for host name'

YYYY-MM-DDTHH:MM:SS | ERROR    | q-12094:QuickSearch:1442157893:01:library01 | tomcat-http-27            | ScriptExecutionUtils           | IPResolverUtil-resolve-ip : Timed out while running script [/usr/bin/dig, +short, vCenterFQDN, a].
YYYY-MM-DDTHH:MM:SS | ERROR    | q-12094:QuickSearch:1442157893:01:library01 | tomcat-http-27            | IPResolverUtil                 | Error executing dig ip cmd [/usr/bin/dig, +short, vCenterFQDN, a].
com.vmware.vcde.util.process.ScriptException: Operation timed out.
        at com.vmware.vcde.util.process.ScriptExecutionUtils.runScriptProcess(ScriptExecutionUtils.java:54) ~[vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.process.ScriptExecutionUtils.runScriptProcess(ScriptExecutionUtils.java:91) ~[vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.IPResolverUtil.getIpAddressWithType(IPResolverUtil.java:125) [vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.IPResolverUtil.getInetAddressByHostName(IPResolverUtil.java:77) [vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.vcde.util.IPResolverUtil.getInetAddress(IPResolverUtil.java:57) [vsphere-util-lib-1.0.0.jar:?]
        at com.vmware.transfer.filters.TsCorsFilter.isOriginHostAllowed(TsCorsFilter.java:250) [ts-main-1.0.0.jar:?]
...org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.87.jar:9.0.87]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) [tomcat-embed-core-9.0.87.jar:9.0.87]
        at java.lang.Thread.run(Thread.java:750) [?:1.8.0_401]
YYYY-MM-DDTHH:MM:SS | DEBUG    | q-12094:QuickSearch:1442157893:01:library01 | tomcat-http-27            | IPResolverUtil                 | Cannot get IPv4 address for host name: vCenterFQDN, trying IPv6



The command "/usr/bin/dig +short vCenterFQDN a" fails to return an IP address when executed on the vCenter




Resolution


To resolve this issue, ensure that the DNS server(s) is accessible.
 
To troubleshoot and resolve this issue:
  1. In the DNS server, open the reverse lookup zone and find the IP address associated with the vCenter Server.
  2. Check if the IP address entry exist.
  • If the IP address entry does not exist, create a reverse lookup record for the server.
  • If the IP address entry exists, check if the associated FQDN in the DNS reverse lookup zone record matches the FQDN that the server is attempting to use.
  • If it does not match, modify the reverse lookup record with the correct FQDN.
Note: Depending on the environment, DNS changes may take effect immediately or may take some time before the information is propagated. For example, if you make changes to your Microsoft DNS that is on a domain controller and the server on which you are installing vCenter Server is using that domain controller as its primary DNS server, the changes take effect immediately. If you make the DNS changes on another domain controller running DNS, it may take some time before the changes are propagated.

Additional Information

In some scenarios, there are chances that the DNS is unavailable for sometime and below workaround can be used as an interim solution.

Update the hosts file of the client from where the vSphere client is being accessed to resolve the vcenter FQDN to it's IP address. Launch the vSphere client using it's IP address so that the source URL is created based on the IP address which does not need the vCenter to resolve it's FQDN.