On Thu, Oct 13, 2016 at 11:28 AM, Martin Polednik <mpoled...@redhat.com> wrote: > On 13/10/16 09:01 +0300, Dan Kenigsberg wrote: >> >> On Thu, Oct 13, 2016 at 11:52:17AM +1100, David Pinkerton wrote: >>> >>> Nir, >>> >>> Looks like its crashing on the dmidecode system call. >>> >>> I've attached the output from gbd as well as a dmidecode text dump, >>> dmidecode binary dump and each keywords run individually. >>> >>> >From the keywords it look like my dmi info is corrupted. I have >>> download a >>> AMI dmi editor but this only allows access to limited fields. Do you >>> know >>> another tools to rewrite the dmi info? >> >> >> I don't. But whatever is inside your dmi, dmidecode must not crash. >> Which version of python-dmidecode do you have installed? >> Would you open a bug against it? > > > This is really unfortunate - I've reproduced the issue with the > attached dump
Can you explain how do you do that? > and it's python-dmidecode that crashes. The issue is > actually fixed upstream, but the version at least in RHEL does not > contain the fix. Can you link to the missing fix? > RHEL version: > python-dmidecode-3.10.13-11.el7.x86_64 > > works with (actual upstream): > python-dmidecode-3.12.2-1.el7.x86_64 > (actually it's ~6 line change in dmioem.c) > > VDSM output: > # vdsClient 0 getVdsHardwareInfo > systemFamily = 'To Be Filled By O.E.M.' > systemManufacturer = 'Supermicro' > systemProductName = 'H8DM8-2' > systemSerialNumber = '1234567890' > systemUUID = '00020003-0004-0005-0006-000700080009' > systemVersion = '1234567890' > > Although the upstream version of python-dmidecode is able to deal with > improper DMI tables, I can't say what else will/will not behave correctly. > > mpolednik > > >> I believe that its maintainers would appriace a simple reproducer, that >> does not involve ovirt or Vdsm. See if you can simplify the code in >> >> def __leafDict(d): >> ret = {} >> for k, v in d.iteritems(): >> if isinstance(v, dict): >> ret.update(__leafDict(v)) >> else: >> ret[k] = v >> return ret >> >> >> def getAllDmidecodeInfo(): >> import dmidecode >> >> myLeafDict = {} >> for k in ('system', 'bios', 'cache', 'processor', 'chassis', 'memory'): >> myLeafDict[k] = __leafDict(getattr(dmidecode, k)()) >> return myLeafDict >> _______________________________________________ >> Users mailing list >> Users@ovirt.org >> http://lists.ovirt.org/mailman/listinfo/users > > _______________________________________________ > Users mailing list > Users@ovirt.org > http://lists.ovirt.org/mailman/listinfo/users _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users