Comment 0 for bug 1248394

Revision history for this message
Robie Basak (racb) wrote :

python-libvirt 0.9.8-2ubuntu17.13

uvtool cannot sync images using libvirt on Precise. This is limited to i386. The error looks something like:

[...]
  File "/usr/lib/python2.7/dist-packages/uvtool/libvirt/__init__.py", line 88, in _create_volume_from_fobj_with_size
    vol.upload(stream, 0, fobj_size, 0)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 2073, in upload
    if ret == -1: raise libvirtError ('virStorageVolUpload() failed', vol=self)
libvirt.libvirtError: Unable to seek /var/lib/uvtool/libvirt/images/x-uvt-b64-Y29tLnVidW50dS5jbG91ZDpzZXJ2ZXI6MTIuMDQ6aTM4NiAyMDEzMTAyNA== to 654696742695993344: Invalid argument

Root cause: in the libvirt source, python/generator.py maps "unsigned long long" to PyArg_ParseTuple parameter "l", instead of "L" or "K".

Upstream fix: http://libvirt.org/git/?p=libvirt.git;a=commit;h=d78035d06aab73a76a82c525f41580cf986cce7b
Development fix: packaged from upstream
Stable fix: a trivial backport of this fix.

Note that this ignores the signed/unsigned distinction. I think the correct fix should be "K", but upstream are using "L", which will suffice for Intel architectures. To avoid diverging I think "L" is better for an SRU if we have to do it today. This may break ARM, which defaults to different signedness. I will raise this separately with upstream.

Debdiff to follow.