[libvirt] [PATCH] python: don't mask libvirt errors

Peter Krempa pkrempa at redhat.com
Fri Aug 31 22:05:06 UTC 2012


On 08/31/12 19:10, Eric Blake wrote:
> A user reported this crash when using python bindings:
>
>    File "/home/nox/workspace/NOX/src/NOX/hooks.py", line 134, in trigger
>      hook.trigger(event)
>    File "/home/nox/workspace/NOX/src/NOX/hooks.py", line 33, in trigger
>      self.handlers[event]()
>    File "/home/nox/workspace/NOX/hooks/volatility.py", line 81, in memory_dump
>      for block in Memory(self.ctx):
>    File "/home/see/workspace/NOX/src/NOX/lib/libtools.py", line 179, in next
>      libvirt.VIR_MEMORY_PHYSICAL)
>    File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1759, in memoryPeek
>      ret = libvirtmod.virDomainMemoryPeek(self._o, start, size, flags)
> SystemError: error return without exception set
>
> In the python bindings, returning NULL makes python think an
> exception was thrown, while returning the None object lets the
> wrappers know that a libvirt error exists.
>
> Reported by Nox DaFox, fix suggested by Dan Berrange.
>
> * python/libvirt-override.c (libvirt_virDomainBlockPeek)
> (libvirt_virDomainMemoryPeek): Return python's None object, so
> wrapper knows to check libvirt error.
> ---
>   python/libvirt-override.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
>

ACK.

Peter




More information about the libvir-list mailing list