Red Hat Bugzilla – Bug 1145050
API virNodeGetFreePages need report specific error when node out of range
Last modified: 2015-03-05 02:45:03 EST
description of problem: For a machine which only has 1 node, calling virNodeGetFreePages with startCell is '1', virNodeGetFreePages will report: 'An error occurred, but the cause is unknown'. version: libvirt-1.2.8-2.el7.x86_64 qemu-kvm-rhev-2.1.0-3.el7.x86_64 How reproducible: 100% step to reproduce: # numactl --hard available: 1 nodes (0) node 0 cpus: 0 1 2 3 4 5 6 7 node 0 size: 8134 MB node 0 free: 6464 MB node distances: node 0 0: 10 1. test it in python # python Python 2.7.5 (default, Feb 11 2014, 07:46:25) [GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import libvirt >>> con=libvirt.open(None) >>> con.getFreePages([4,2048],0,1,0) {0: {2048: 1, 4: 1654895}} >>> con.getFreePages([4,2048],0,2,0) libvirt: error : An error occurred, but the cause is unknown Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3509, in getFreePages if ret is None: raise libvirtError ('virNodeGetFreePages() failed', conn=self) libvirt.libvirtError: An error occurred, but the cause is unknown >>> con.getFreePages([4,2048],1,1,0) libvirt: error : An error occurred, but the cause is unknown Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3509, in getFreePages if ret is None: raise libvirtError ('virNodeGetFreePages() failed', conn=self) libvirt.libvirtError: An error occurred, but the cause is unknown 2. test it in virsh # virsh freepages --cellno 2 --pagesize 4096 error: An error occurred, but the cause is unknown Expect result: it raises an error like "start cell 2 is out of range"
I've just pushed patches upstream: commit c46fa72e4090b7884b8c6edaf63f1638eb8e04f8 Author: Jincheng Miao <jmiao@redhat.com> AuthorDate: Mon Sep 22 18:14:28 2014 +0800 Commit: Michal Privoznik <mprivozn@redhat.com> CommitDate: Tue Sep 23 10:23:20 2014 +0200 Fix typo of virNodeGetFreePages comment Signed-off-by: Jincheng Miao <jmiao@redhat.com> commit 7db19366423dcab388907c12caf766c6e5870d00 Author: Jincheng Miao <jmiao@redhat.com> AuthorDate: Mon Sep 22 18:14:27 2014 +0800 Commit: Michal Privoznik <mprivozn@redhat.com> CommitDate: Tue Sep 23 10:23:20 2014 +0200 nodeinfo: report error when given node is out of range https://bugzilla.redhat.com/show_bug.cgi?id=1145050 Signed-off-by: Jincheng Miao <jmiao@redhat.com> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> commit c3e2d5929c1bfaaeb2ef2df121dc90d767b228f5 Author: Jincheng Miao <jmiao@redhat.com> AuthorDate: Mon Sep 22 18:14:26 2014 +0800 Commit: Michal Privoznik <mprivozn@redhat.com> CommitDate: Tue Sep 23 10:23:20 2014 +0200 virsh-host: fix pagesize unit of freepages The unit of '--pagesize' of freepages is kibibytes. https://bugzilla.redhat.com/show_bug.cgi?id=1145048 Signed-off-by: Jincheng Miao <jmiao@redhat.com> Signed-off-by: Michal Privoznik <mprivozn@redhat.com> v1.2.8-230-gc46fa72
Moving to POST: http://post-office.corp.redhat.com/archives/rhvirt-patches/2014-September/msg00934.html
Verify it as follows. The result is expected. Move its status to VERIFIED. # rpm -q libvirt libvirt-python libvirt-1.2.8-8.el7.x86_64 libvirt-python-1.2.8-5.el7.x86_64 [root@localhost ~]# numactl --hard available: 1 nodes (0) node 0 cpus: 0 1 2 3 node 0 size: 8013 MB node 0 free: 5607 MB node distances: node 0 0: 10 [root@localhost ~]# python Python 2.7.5 (default, Feb 11 2014, 07:46:25) [GCC 4.8.2 20140120 (Red Hat 4.8.2-13)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import libvirt >>> con=libvirt.open(None) >>> con.getFreePages([4,2048],0,1,0) {0: {2048: 0, 4: 1434301}} >>> con.getFreePages([4,2048],0,2,0) {0: {2048: 0, 4: 1434301}} >>> con.getFreePages([4,2048],1,1,0) libvirt: error : internal error: start cell 1 out of range (0-0) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3546, in getFreePages if ret is None: raise libvirtError ('virNodeGetFreePages() failed', conn=self) libvirt.libvirtError: internal error: start cell 1 out of range (0-0) >>> quit() [root@localhost ~]# virsh freepages --cellno 2 --pagesize 4096 error: internal error: start cell 2 out of range (0-0)
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/RHSA-2015-0323.html