** Description changed: [Impact] uvtool fails to work on Precise i386, which means that juju's upcoming KVM container feature won't work when a guest is on the current LTS, which is our current recommendation. [Test Case] 0. Start with Precise on i386 1. sudo add-apt-repository cloud-archive:tools 2. sudo apt-get update 3. sudo apt-get install uvtool-libvirt 4. sg libvirtd - 5. uvt-simplestreams-sync arch=i386 release=precise + 5. uvt-simplestreams-libvirt sync arch=i386 release=precise Expected results: zero exit status (some spurious errors printed) Actual results: non-zero exit status, "libvirt.libvirtError" with "unable to seek" to a ridiculously long offset. [Upstream Fix] http://libvirt.org/git/?p=libvirt.git;a=commit;h=d78035d06aab73a76a82c525f41580cf986cce7b [Development Fix] Already on an upstream version that has the fix. [Stable Fix] Trivial backport of the upstream fix. [Regression Potential] The only change is in the Python bindings, so API calls involving 64-bit integer parameters are affected. The fix is obviously correct; upstream and Saucy both have it and so this fix has been extensively tested. [Details] 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. 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 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 the actual problem. To avoid diverging I think "L" is better for an SRU if we have to do it today. I have raised this separately with upstream.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1248394 Title: Python virStorageVolUpload binding fails on i386 To manage notifications about this bug go to: https://bugs.launchpad.net/uvtool/+bug/1248394/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
