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

Aline Manera alinefm at linux.vnet.ibm.com
Fri Mar 20 21:32:21 UTC 2015


Reviewed-by: Aline Manera <alinefm at linux.vnet.ibm.com>

On 20/03/2015 17:14, Jose Ricardo Ziviani wrote:
>   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




More information about the Kimchi-devel mailing list