Bug 1450311

Summary: Failed to install guest on remote rhel6.9 connection
Product: Red Hat Enterprise Linux 7 Reporter: zhoujunqin <juzhou>
Component: virt-managerAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.4CC: crobinso, juzhou, kuwei, mskinner, mxie, ron, thinkingfacts, tzheng, xiaodwan
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-manager-1.4.1-5.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 21:04:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
virt-manager debug log
none
virt-manager-connectxen-log none

Description zhoujunqin 2017-05-12 08:52:04 UTC
Description of problem:
Launch virt-manager on source rhel7 host, then connect to destination rhel6.9 host to install guest, failed to install guest.


Version-Release number of selected component (if applicable):
virt-manager-1.4.1-3.el7.noarch
libvirt-3.2.0-4.el7.x86_64
qemu-kvm-rhev-2.9.0-3.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
Env setup: Prepare 2 hosts.
source host: rhel7.4(RHEL-7.4-20170504.0/)
destination host: rhel6.9(6.9released tree)

1. Launch virt-manager on source rhel7 host
# virt-manager

2. Connect to remote rhel6 host by adding a connection.
File ->Add connection ->check 'Connect to remote host', input ip in 'Hostname', others as default, click 'Connect'.

3. Install a new guest on rhel6 connection.
Use http installation method, then click 'Forward' button step by step.

Actual results:
After click 'Begin Installation', failed to install guest.
Unable to complete install: ''NoneType' object has no attribute 'get_disk_type''

Expected results:
Can install guest successfully.

Additional info:
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 88, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/create.py", line 2288, in _do_async_install
    guest.start_install(meter=meter)
  File "/usr/share/virt-manager/virtinst/guest.py", line 466, in start_install
    install_xml, final_xml = self._build_xml()
  File "/usr/share/virt-manager/virtinst/guest.py", line 377, in _build_xml
    install_xml = self._get_install_xml(install=True)
  File "/usr/share/virt-manager/virtinst/guest.py", line 336, in _get_install_xml
    return self._do_get_install_xml(*args, **kwargs)
  File "/usr/share/virt-manager/virtinst/guest.py", line 369, in _do_get_install_xml
    return self.get_xml_config()
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 912, in get_xml_config
    return self._do_get_xml_config()
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 1135, in _do_get_xml_config
    self._add_parse_bits(node)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 1158, in _add_parse_bits
    return self._do_add_parse_bits(node)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 1193, in _do_add_parse_bits
    obj._add_parse_bits(node)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 1158, in _add_parse_bits
    return self._do_add_parse_bits(node)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 1169, in _do_add_parse_bits
    prop._set_default(self)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 565, in _set_default
    candefault, val = self._default_get_value(xmlbuilder)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 553, in _default_get_value
    return (True, self._default_cb(xmlbuilder))
  File "/usr/share/virt-manager/virtinst/devicedisk.py", line 575, in _get_default_driver_type
    return _qemu_sanitize_drvtype(self.type, drvtype)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 626, in getter
    val = self._nonxml_fget(xmlbuilder)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 591, in _nonxml_fget
    candefault, val = self._default_get_value(xmlbuilder)
  File "/usr/share/virt-manager/virtinst/xmlbuilder.py", line 553, in _default_get_value
    return (True, self._default_cb(xmlbuilder))
  File "/usr/share/virt-manager/virtinst/devicedisk.py", line 666, in _get_default_type
    return self._storage_backend.get_dev_type()
  File "/usr/share/virt-manager/virtinst/diskbackend.py", line 601, in get_dev_type
    self._conn.is_remote())
  File "/usr/share/virt-manager/virtinst/diskbackend.py", line 203, in _get_dev_type
    if vol_xml.file_type == libvirt.VIR_STORAGE_VOL_BLOCK:
  File "/usr/share/virt-manager/virtinst/storage.py", line 701, in _get_vol_type
    return self._pool_xml.get_disk_type()
AttributeError: 'NoneType' object has no attribute 'get_disk_type'

Comment 2 Cole Robinson 2017-05-16 21:36:27 UTC
Can you provide full virt-manager --debug output when reproducing?

Comment 3 zhoujunqin 2017-05-17 03:20:00 UTC
Created attachment 1279521 [details]
virt-manager debug log

Comment 4 zhoujunqin 2017-05-17 03:23:39 UTC
(In reply to Cole Robinson from comment #2)
> Can you provide full virt-manager --debug output when reproducing?

I can also reproduce this issue when install a vm on remote xen server.
Debug log: virt-manager-connectxen-log

Comment 5 zhoujunqin 2017-05-17 03:24:04 UTC
Created attachment 1279522 [details]
virt-manager-connectxen-log

Comment 6 zhoujunqin 2017-05-17 06:15:00 UTC
I cannot reproduce this issue with package: virt-manager-1.4.0-2.el7.noarch, so add 'Regression' keywords, thanks.

Comment 8 Pavel Hrdina 2017-05-17 16:36:56 UTC
Upstream commit:

commit 713e07d4a2c4a1ef31bff2c6295df5e3934fd6eb
Author: Pavel Hrdina <phrdina>
Date:   Wed May 17 09:18:49 2017 +0200

    virtinst.diskbackend: set pool after creating StorageVolume

Comment 11 zhoujunqin 2017-05-25 09:36:04 UTC
I can reproduce this bug with build:
virt-manager-1.4.1-4.el7.noarch
libvirt-3.2.0-6.virtcov.el7.x86_64
qemu-kvm-rhev-2.9.0-6.el7.x86_64

Steps:
Failed to install new vm on remote connection of rhel6.9 and rhel5.11, will meet error:
Unable to complete install: ''NoneType' object has no attribute 'get_disk_type''

Then try to verify this bug with new build:
virt-manager-1.4.1-5.el7.noarch
libvirt-3.2.0-6.virtcov.el7.x86_64
qemu-kvm-rhev-2.9.0-6.el7.x86_64

Steps:
Env setup: Prepare 2 hosts.
source host: rhel7.4(RHEL-7.4-20170504.0/)
destination host: rhel6.9(6.9released tree)

1. Launch virt-manager on source rhel7 host
# virt-manager

2. Connect to remote rhel6 host by adding a connection.
File ->Add connection ->check 'Connect to remote host', input ip in 'Hostname', others as default, click 'Connect'.

3. Install a new guest on rhel6 connection.
Use http installation method, then click 'Forward' button step by step.


Result:
No error meet after click 'Begin Installation', and guest can be installed successfully on remote rhel6 connection.
And also installed guest on remote rhel5 and rhel7 connection successfully.
So move this bug from ON_QA to VERIFIED.

Comment 12 David Cartwright 2017-06-04 12:38:35 UTC
After last batch of updates I am now experiencing the same bug when trying to remotely create a VM on a Fedora 20 system running KVM

Comment 13 marc skinner 2017-06-12 21:38:07 UTC
Using virt-manager 1.4.1-2 on FC25.

When I create a RHEL7.3 VM on a CentOS 6.9 KVM host running libvirt-0.10.2-62 I get the same error when trying to attach a disk before installation begins.

Unable to complete install: ''NoneType' object has no attribute 'get_disk_type''

When I create a RHEL7.3 VM on a RHEL 6.9 KVM host running libvirt-0.10.2-62 I get the same error when trying to attach a disk before installation begins.

Unable to complete install: ''NoneType' object has no attribute 'get_disk_type''

When I create a RHEL 7.3 VM on a RHEL 7.3 KVM host running libvirt-2.0.0-10 it works, with NO error.

Comment 14 tingting zheng 2017-06-22 05:50:54 UTC
(In reply to marc skinner from comment #13)
> Using virt-manager 1.4.1-2 on FC25.
> 
> When I create a RHEL7.3 VM on a CentOS 6.9 KVM host running
> libvirt-0.10.2-62 I get the same error when trying to attach a disk before
> installation begins.
> 
> Unable to complete install: ''NoneType' object has no attribute
> 'get_disk_type''
> 
> When I create a RHEL7.3 VM on a RHEL 6.9 KVM host running libvirt-0.10.2-62
> I get the same error when trying to attach a disk before installation begins.
> 
> Unable to complete install: ''NoneType' object has no attribute
> 'get_disk_type''
> 
> When I create a RHEL 7.3 VM on a RHEL 7.3 KVM host running libvirt-2.0.0-10
> it works, with NO error.

Refer to comment 8,there is upstream patch on 2017-05-17,so next build of virt-manager on upstream should include the fix of this bug.

Comment 15 errata-xmlrpc 2017-08-01 21:04:33 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2072