** 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

Reply via email to