You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vcl.apache.org by "Andy Kurth (JIRA)" <ji...@apache.org> on 2017/04/27 18:41:04 UTC

[jira] [Resolved] (VCL-977) VMware may fail to register VM if existing invalid VM is registered

     [ https://issues.apache.org/jira/browse/VCL-977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andy Kurth resolved VCL-977.
----------------------------
    Resolution: Fixed

> VMware may fail to register VM if existing invalid VM is registered
> -------------------------------------------------------------------
>
>                 Key: VCL-977
>                 URL: https://issues.apache.org/jira/browse/VCL-977
>             Project: VCL
>          Issue Type: Improvement
>          Components: vcld (backend)
>    Affects Versions: 2.4.2
>            Reporter: Andy Kurth
>            Assignee: Andy Kurth
>             Fix For: 2.5
>
>         Attachments: invalid.png
>
>
> Under some circumstances a VM may become _invalid_.  It looks like this:
> !invalid.png!
> VCL will fail to load a VM if an _invalid_ VM exists on the host that is using the same .vmx file path as the new VM.  As you can see in the image, there are 3 _invalid_ VMs all using the same computer, _vi1-154_.  Each VM had been loaded with a different image revision.  If you attempt to load the same VM with any of the same revisions, the VMware host would not allow the new VM to be registered because it finds the existing _invalid_ VM using the same .vmx path.  The following appears in *vcld.log*:
> {noformat}
> VIM_SSH.pm:_run_vim_cmd|265| ---- WARNING ----
> VIM_SSH.pm:_run_vim_cmd|265| 2016-07-27 11:35:17VIM_SSH.pm:_run_vim_cmd|265|attempt 1/5: failed to execute command on VM host blade1a5-3: vim-cmd solo/registervm "/vmfs/volumes/local/vi1-154_3705-v6/vi1-154_3705-v6.vmx", exit status: 1, output:
> VIM_SSH.pm:_run_vim_cmd|265| (vim.fault.AlreadyExists) {
> VIM_SSH.pm:_run_vim_cmd|265| faultCause = (vmodl.MethodFault) null,
> VIM_SSH.pm:_run_vim_cmd|265| name = "135",
> VIM_SSH.pm:_run_vim_cmd|265| msg = "The specified key, name, or identifier '135' already exists."
> VIM_SSH.pm:_run_vim_cmd|265| }
> VIM_SSH.pm:_run_vim_cmd|265| ( 0) VIM_SSH.pm, _run_vim_cmd (line: 265)
> VIM_SSH.pm:_run_vim_cmd|265| (-1) VIM_SSH.pm, vm_register (line: 1417)
> VIM_SSH.pm:_run_vim_cmd|265| (-2) VMware.pm, load (line: 548)
> VIM_SSH.pm:_run_vim_cmd|265| (-3) new.pm, reload_image (line: 634)
> VIM_SSH.pm:_run_vim_cmd|265| (-4) new.pm, process (line: 277)
> VIM_SSH.pm:_run_vim_cmd|265| (-5) vcld, make_new_child (line: 587)
> {noformat}
> The code is not detecting the existing _invalid_ VM because it is ignoring the _Skipping invalid VM_ lines returned from {{vim-cmd vmsvc/getallvms}}:
> {noformat}
> blade1a5-3:~ $ vim-cmd vmsvc/getallvms
> Skipping invalid VM '135'
> Skipping invalid VM '148'
> Skipping invalid VM '149'
> Vmid                     Name                                        File                           Guest OS       Version   Annotation
> 162    vi1-152:win7-ISE716Test-3796-v3 (shared)   [local] vi1-152_3796-v3/vi1-152_3796-v3.vmx   windows7_64Guest   vmx-07
> {noformat}
> The invalid VMs can be unregistered via {{vim-cmd vmsvc/unregister}}.  The code could be updated to try to unregister _invalid_ VMs if it fails to register a .vmx file.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)