
On Fri, Aug 31, 2012 at 08:09:46AM -0700, Daniel P. Berrange wrote:
On Fri, Aug 31, 2012 at 03:23:18PM +0300, NoxDaFox wrote:
Here's the typical output:
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
Hmm, that's a peculiar message to see - I can't find anywhere in the libvirt code that uses that particular messages, so I'm not sure what has gone wrong here.
Oh, I think this might be a python message. Our C binding does LIBVIRT_BEGIN_ALLOW_THREADS; c_retval = virDomainMemoryPeek(domain, start, size, buf, flags); LIBVIRT_END_ALLOW_THREADS; if (c_retval < 0) goto cleanup; py_retval = PyString_FromStringAndSize(buf, size); cleanup: VIR_FREE(buf); return py_retval; } In the 'c_retval < 0' check, I think we should have been doing if (c_retval < 0) { py_retval = VIR_PY_NONE; goto cleanup; } so we actually return Python's idea of None, rather than C's NULL, at which point you'd probably see the real error message from libvirt/QEMU Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|