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 :| _______________________________________________ libvirt-users mailing list libvirt-users@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvirt-users