Bug 1234686

Summary: need a address conflicts check for dimm address type
Product: Red Hat Enterprise Linux 7 Reporter: Luyao Huang <lhuang>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.2CC: dyuan, honzhang, mzhan, pkrempa, rbalakri, shyu
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-1.2.17-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 06:41:41 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 Luyao Huang 2015-06-23 03:27:43 UTC
Description of problem:
need a address conflicts check for dimm address type

Version-Release number of selected component (if applicable):
libvirt-1.2.16-1.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.prepare a vm have numa and MaxMemory settings:
# virsh dumpxml  rhel7.0
  <maxMemory slots='16' unit='KiB'>25600000</maxMemory>
  <memory unit='KiB'>1548288</memory>
  <currentMemory unit='KiB'>1548288</currentMemory>

  <cpu>
    <numa>
      <cell id='0' cpus='0-1' memory='512000' unit='KiB'/>
      <cell id='1' cpus='2-3' memory='512000' unit='KiB'/>
    </numa>
  </cpu>

2. attach a memory device twice which specified slot number
# cat memdevice2.xml
    <memory model='dimm'>
      <target>
        <size unit='m'>256</size>
        <node>0</node>
      </target>
<address type='dimm' slot='2' base='0x0'/>
    </memory>

# virsh attach-device rhel7.0 memdevice2.xml
Device attached successfully

# virsh attach-device rhel7.0 memdevice2.xml
error: Failed to attach device from memdevice2.xml
error: internal error: unable to execute QEMU command 'device_add': slot 2 is busy

3.


Actual results:
in step 2 libvirt do not check if the slot is already been used by other address

Expected results:
report error more earlier to point out the address conflict from libvirt side

Additional info:

Upstream patch:

commit cb7e13ffbf114d16db26be755838e1f455f3392f
Author: Luyao Huang <lhuang>
Date:   Mon Jun 15 20:33:49 2015 +0800

    qemu: Add a check for slot and base dimm address conflicts

v1.2.16-209-gcb7e13f

Comment 2 Shanzhi Yu 2015-07-13 09:37:13 UTC
Verify this bug with libvirt-1.2.17-2.el7.x86_64


1. Prepare running guest, with same configuration as in comment 0.

2. Do twice memory device attach

# virsh attach-device r7 mem.xml 
Device attached successfully


# virsh attach-device r7 mem.xml 
error: Failed to attach device from mem.xml
error: unsupported configuration: memory device slot '2' is already being used by another memory device

So the error is exactly what commit cb7e13 add.

Comment 4 errata-xmlrpc 2015-11-19 06:41:41 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://rhn.redhat.com/errata/RHBA-2015-2202.html