Bug 1383039

Summary: Guest xml changed after guest start failed when set vnc port='0'
Product: Red Hat Enterprise Linux 7 Reporter: Fangge Jin <fjin>
Component: libvirtAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: zhe peng <zpeng>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: dyuan, mzhan, rbalakri, xuzhang, zpeng
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-3.1.0-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 17:16:43 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:

Description Fangge Jin 2016-10-09 09:25:08 UTC
Description of problem:
Set guest vnc port to 0, then start guest, it failed to start, and guest xml is changed unexpectedly.
This can also be reproduced by restarting libvirtd.

Version-Release number of selected component:
libvirt-2.0.0-10.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Set guest vnc port to '0'
# virsh edit rhel7
  <graphics type='vnc' port='0'/>

# virsh dumpxml rhel7
    <graphics type='vnc' autoport='no'>
      <listen type='address'/>
    </graphics>

2.
1) Start guest
# virsh start rhel7
error: Failed to start domain rhel7
error: unsupported configuration: vnc port must be in range [5900,65535]

or
2) Restart libvirtd

3.Check guest dumpxml:
# virsh dumpxml rhel7
    <graphics type='vnc' port='-1' autoport='yes'>
      <listen type='address'/>
    </graphics>

Actual results:
Guest xml changed after guest start failed or restart libvirtd

Expected results:
Guest xml doesn't change after guest start failed or restart libvirtd
Or "virsh edit" should fail in step1

Comment 1 Pavel Hrdina 2017-01-27 09:02:50 UTC
Upstream commit:

commit f19390d2d3ab18cc9bff53e1d642e4e2b534f5a5
Author: Pavel Hrdina <phrdina>
Date:   Wed Jan 25 17:42:07 2017 +0100

    domain_conf: vnc: preserve autoport value if no port was specified

Comment 3 zhe peng 2017-03-10 06:49:21 UTC
I can reproduce this issue.
Verify with build:
libvirt-3.1.0-2.el7.x86_64

step:
1. Set guest vnc port to '0'
# virsh edit rhel7
  <graphics type='vnc' port='0'/>

# virsh dumpxml rhel7
    <graphics type='vnc' autoport='no'>
      <listen type='address'/>
    </graphics>

2.
1) Start guest
# virsh start rhel7
error: Failed to start domain rhel7
error: unsupported configuration: vnc port must be in range [5900,65535]

check guest xml:
 <graphics type='vnc' autoport='no' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>

restart libvirtd:
systemctl restart libvirtd

check xml again:
   <graphics type='vnc' autoport='no' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>

guest xml not changed. move to verified.

Comment 4 errata-xmlrpc 2017-08-01 17:16:43 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/RHEA-2017:1846

Comment 5 errata-xmlrpc 2017-08-01 23:57:38 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/RHEA-2017:1846