[Bug 1736454] Re: pylxd cannot start containers with LXD 2.0.11

James Page james.page at ubuntu.com
Thu Dec 7 12:17:57 UTC 2017


** Tags removed: verification-newton-needed verification-ocata-needed
** Tags added: verification-newton-done verification-ocata-done

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/1736454

Title:
  pylxd cannot start containers with LXD 2.0.11

Status in Ubuntu Cloud Archive:
  Fix Released
Status in Ubuntu Cloud Archive newton series:
  Fix Committed
Status in Ubuntu Cloud Archive ocata series:
  Fix Committed
Status in python-pylxd package in Ubuntu:
  Fix Released
Status in python-pylxd source package in Xenial:
  Fix Released

Bug description:
  The LXD 2.0.11 SRU in xenial broke pylxd and hence broke Launchpad
  builds, as visible here:

  https://launchpadlibrarian.net/348160479/buildlog_snap_ubuntu_xenial_arm64_core_BUILDING.txt.gz

    /usr/lib/python2.7/dist-packages/pylxd/model.py:113: UserWarning: Attempted to set unknown attribute "used_by" on instance of "Profile"
      key, self.__class__.__name__
    /usr/lib/python2.7/dist-packages/pylxd/model.py:113: UserWarning: Attempted to set unknown attribute "description" on instance of "Container"
      key, self.__class__.__name__
    Traceback (most recent call last):
      File "/usr/share/launchpad-buildd/slavebin/in-target", line 27, in <module>
        sys.exit(main())
      File "/usr/share/launchpad-buildd/slavebin/in-target", line 23, in main
        return args.operation.run()
      File "/usr/lib/python2.7/dist-packages/lpbuildd/target/lifecycle.py", line 40, in run
        self.backend.start()
      File "/usr/lib/python2.7/dist-packages/lpbuildd/target/lxd.py", line 380, in start
        container.start(wait=True)
      File "/usr/lib/python2.7/dist-packages/pylxd/container.py", line 163, in start
        wait=wait)
      File "/usr/lib/python2.7/dist-packages/pylxd/container.py", line 151, in _set_state
        self.sync()
      File "/usr/lib/python2.7/dist-packages/pylxd/model.py", line 154, in sync
        setattr(self, key, val)
      File "/usr/lib/python2.7/dist-packages/pylxd/model.py", line 135, in __setattr__
        return super(Model, self).__setattr__(name, value)
    AttributeError: 'Container' object has no attribute 'description'

  I initially thought this would require reverting LXD, but on
  inspection it's just adding some new attributes and it's really not
  its fault that pylxd is unnecessarily strict.  This was fixed in pylxd
  upstream a while ago (https://github.com/lxc/pylxd/pull/234), and the
  fix is in 2.2.4 so >=artful is already fixed.  zesty in principle
  requires the fix but I can't actually reproduce the bug there, so it's
  probably best to leave it alone for the time being.  However, xenial's
  pylxd is currently broken.

  [Test Case]

    >>> from pylxd import Client
    >>> client = Client()
    >>> container = client.containers.create({"name": "test", "architecture": "x86_64", "profiles": ["default"], "source": {"type": "image", "mode": "pull", "server": "https://cloud-images.ubuntu.com/releases", "protocol": "simplestreams", "alias": "xenial"}}, wait=True)
    >>> container.start(wait=True)  # should produce no exceptions

  [Regression Potential]

  The fix is to the code that marshals objects between the LXD server
  and the Python client code, so anything around there could in
  principle go wrong.  I think running launchpad-buildd against it ought
  to exercise it fairly well.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1736454/+subscriptions



More information about the Ubuntu-openstack-bugs mailing list