Bug 1176739
| Summary: | guest will disappear after use setmaxmem set a big mem that libvirt cannot parse | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Luyao Huang <lhuang> |
| Component: | libvirt | Assignee: | Ján Tomko <jtomko> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.1 | CC: | dyuan, hliu, mzhan, rbalakri |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-1.2.16-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-11-19 06:05:38 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: | |||
Now pushed upstream:
commit 3511c12244beb289dd44503739d65b0e823685cd
Author: Ján Tomko <jtomko>
CommitDate: 2015-05-14 17:17:40 +0200
reject out of range memory in SetMemory APIs
The APIs take the memory value in KiB and we store it in KiB
internally, but we cannot parse the whole ULONG_MAX range
on 64-bit systems, because virDomainParseScaledValue
needs to fit the value in bytes in an unsigned long long.
https://bugzilla.redhat.com/show_bug.cgi?id=1176739
git describe: v1.2.15-84-g3511c12
Verify this bug with libvirt-1.2.17-2.el7.x86_64: 1. prepare a inactive guest: # virsh domstate test4 shut off 2. # virsh setmaxmem test4 10000000T error: Unable to change MaxMemorySize error: numerical overflow: input too large: 10737418240000000 3. # virsh setmaxmem test4 --size 9007199254740991K error: Unable to change MaxMemorySize error: numerical overflow: input too large: 9007199254740991 4. # virsh setmaxmem test4 --size 9007199254740990K 5. restart libvirtd guest still exist: # service libvirtd restart Redirecting to /bin/systemctl restart libvirtd.service # virsh domstate test4 shut off 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 |
description of problem: setmaxmem can set a big mem that libvirt cannot parse Version-Release number of selected component (if applicable): libvirt-1.2.8-10.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.prepare a offline vm # virsh list --all Id Name State ---------------------------------------------------- - test4 shut off 2.setmaxmem to a big value to it: # virsh setmaxmem test4 10000000T 3.check the guest xml: <memory unit='KiB'>10737418240000000</memory> 4.restart libvirtd guest will disappear # service libvirtd restart Redirecting to /bin/systemctl restart libvirtd.service # virsh setmaxmem test4 10000000T error: failed to get domain 'test4' error: Domain not found: no domain with matching name 'test4' Actual results: this value is too large to parse for libvirt Expected results: cannot set a cannot parse mem via setmaxmem