[Kimchi-devel] [PATCH] Fix a ZeroDivisionError when starting kimchi service in Qemu.

Jose Ricardo Ziviani joserz at linux.vnet.ibm.com
Fri Mar 20 20:14:57 UTC 2015


 When using kimchi inside a virtual machine it's possible to get a
 ZeroDivisionError exception because self.sockets is 0, so the
 division self.cores_per_socket = self.cores_present/self.sockets will
 fail. In this case, self.sockets is 0 because cores_present = 1 and
 threads_per_core = 4, which will truncate 0.25 to 0 during the
 integer division.

 This is a low priority corner case since kimchi is obviously not
 supposed to run under a virtual machine but for a plugin development,
 which will not use any virtualization capability, it might become
 handy.

Signed-off-by: Jose Ricardo Ziviani <joserz at linux.vnet.ibm.com>
---
 src/kimchi/model/cpuinfo.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/kimchi/model/cpuinfo.py b/src/kimchi/model/cpuinfo.py
index 3411ef5..d063425 100644
--- a/src/kimchi/model/cpuinfo.py
+++ b/src/kimchi/model/cpuinfo.py
@@ -84,6 +84,8 @@ class CPUInfoModel(object):
             if not rc:
                 self.threads_per_core = int(out.split()[-1])
             self.sockets = self.cores_present/self.threads_per_core
+            if self.sockets == 0:
+                self.sockets = 1
             self.cores_per_socket = self.cores_present/self.sockets
         else:
             # Intel or AMD
-- 
1.9.1




More information about the Kimchi-devel mailing list