Bug 1484341

Summary: Should fail to save guest xml when adding ib700 model watchdog with address
Product: Red Hat Enterprise Linux 7 Reporter: yafu <yafu>
Component: libvirtAssignee: Michal Privoznik <mprivozn>
Status: CLOSED ERRATA QA Contact: Fangge Jin <fjin>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.5CC: dyuan, fjin, lizhu, rbalakri, xuzhang, yanqzhan, zpeng
Target Milestone: rcKeywords: Upstream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-3.9.0-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 10:55:31 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:

Description yafu 2017-08-23 09:53:29 UTC
Description of problem:
Should fail to save guest xml when adding ib700 model watchdog with address

Version-Release number of selected component (if applicable):
libvirt-3.2.0-14.el7_4.3.x86_64
qemu-kvm-rhev-2.9.0-16.el7_4.3.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Edit guest xml to add ib700 model watchdog device and save the xml:
#virsh edit rhel7.3
 ...
 <watchdog model='ib700' action='shutdown'>
    ***<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>***
 </watchdog>
 ...

2.Check the guest xml after step 1:
# virsh dumpxml avocado-vt-vm1 | grep -a3 watchdog
   ...
    <watchdog model='ib700' action='shutdown'>
       ***<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>***
    </watchdog>
   ...

3.Start the guest:
#virsh start rhel7.3
error: Failed to start domain rhel7.3
error: internal error: process exited while connecting to monitor: 2017-08-18T07:27:30.060972Z qemu-kvm: -chardev pty,id=charserial0: char device redirected to /dev/pts/2 (label charserial0)
2017-08-18T07:27:30.086008Z qemu-kvm: -device ib700,id=watchdog0,bus=pci.0,addr=0x8: Device 'ib700' can't go on PCI bus

Actual result:
Guest failed to start since ib700 model watchdog can not have address.

Expected result:
Should fail to save xml when adding ib700 model watchdog device with address


Additional info:

Comment 2 Michal Privoznik 2017-10-06 15:05:47 UTC
This is already fixed upstream:

commit 8a54cc1d08a333283c9cfc3fd7788be2642ca71a
Author:     Michal Privoznik <mprivozn>
AuthorDate: Wed Sep 27 13:45:07 2017 +0200
Commit:     Michal Privoznik <mprivozn>
CommitDate: Thu Oct 5 14:23:20 2017 +0200

    qemuDomainDeviceDefValidate: Validate watchdog
    
    Currently we don't do it. Therefore we accept senseless
    combinations of models and buses they are attached to.
    Moreover, diag288 watchdog is exclusive to s390(x).
    
    Signed-off-by: Michal Privoznik <mprivozn>
    Reviewed-by: John Ferlan <jferlan>

v3.8.0-37-g8a54cc1d0

Comment 4 Fangge Jin 2017-11-06 03:49:00 UTC
Verify with build libvirt-3.9.0-1.el7.x86_64.

Test scenarios:
1.model = i6300esb
  address type = none --> domain define passes
  address type = pci  --> domain define passes
  address type = isa  --> domain define fails

2.model = ib700
  address type = none --> domain define passes
  address type = pci  --> domain define fails
  address type = isa  --> domain define passes

3.model = diag288 ( test on x86_64 machine)
  address type = none --> domain define fails

  I don't have a s390 machine, so I can't test address type for model diag288

Comment 8 errata-xmlrpc 2018-04-10 10:55:31 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-2018:0704