Bug 985973

Summary: Can't launch VM with 2048 GB memory but 2047 GB is OK.
Product: Red Hat Enterprise Virtualization Manager Reporter: Idith Tal-Kohen <italkohe>
Component: vdsmAssignee: Martin Sivák <msivak>
Status: CLOSED ERRATA QA Contact: meital avital <mavital>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.2.0CC: acanan, acathrow, bazulay, cpelland, danken, dfediuck, eedri, hateya, htaira, iheim, jkt, lpeer, michal.skrivanek, msivak, pstehlik, rcyriac, Rhev-m-bugs, yeylon
Target Milestone: ---Keywords: ZStream
Target Release: 3.2.2   
Hardware: x86_64   
OS: Linux   
Whiteboard: sla
Fixed In Version: Doc Type: Bug Fix
Doc Text:
The API now uses strings instead of integers when reporting virtual machine memory and balloon statistics. This fixes a limitation with xmlrpc that could only transfer 32-bit signed numbers. Virtual machines defined with a memory value of 2048 GB or more can now be successfully launched.
Story Points: ---
Clone Of: 974917 Environment:
Last Closed: 2013-08-16 07:22:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: SLA RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 974917    
Bug Blocks:    

Comment 8 Eyal Edri 2013-08-08 12:19:26 UTC
moving to ON_QA since this is on errata for async - https://errata.devel.redhat.com/errata/details/15420

Comment 9 Aharon Canan 2013-08-13 13:10:10 UTC
it is impossible to verify using real HW as we do not have 2TB host.

we first check that the value pass as str instead of int from vdsm to engine.
changing the /usr/share/vdsm/libvirtvm.py (adding "max_mem = 2147483648")

    def _getBalloonInfo(self):
        for dev in self.conf['devices']:
            if dev['type'] == vm.BALLOON_DEVICES and \
                                  dev['specParams']['model'] != 'none':
                max_mem = int(self.conf.get('memSize')) * 1024
                max_mem = 2147483648 
                cur_mem = dev.get('target', max_mem)
                return {'balloon_max': str(max_mem), 'balloon_cur': str(cur_mem)}
        return {}

no xml-rpc error appears in engine.log


we then tried to simulate 2TB host by adding "caps['memSize'] = '2097152'" to the /usr/share/vdsm/caps.py

    caps['memSize'] = str(utils.readMemInfo()['MemTotal'] / 1024)
    caps['memSize'] = '2097152'

failed becuase of libvirt with below error - 
2013-08-13 11:59:44.034+0000: 2895: error : qemuProcessWaitForMonitor:1767 : internal error process exited while connecting to monitor: Failed to allocate 2199023255552 B: Cannot allocate memory


as there is no other way to verify, marking as verified using is19.2 based on above.

Comment 11 errata-xmlrpc 2013-08-16 07:22:34 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.

http://rhn.redhat.com/errata/RHBA-2013-1158.html