[Bug 1736454] [NEW] pylxd cannot start containers with LXD 2.0.11
Colin Watson
cjwatson at canonical.com
Tue Dec 5 14:52:03 UTC 2017
Public bug reported:
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()
>>> client.profiles.get('default') # should produce no warnings
>>> 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 warnings or 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.
** Affects: python-pylxd (Ubuntu)
Importance: Critical
Assignee: Colin Watson (cjwatson)
Status: In Progress
** Changed in: python-pylxd (Ubuntu)
Status: New => In Progress
** Changed in: python-pylxd (Ubuntu)
Importance: Undecided => Critical
** Changed in: python-pylxd (Ubuntu)
Assignee: (unassigned) => Colin Watson (cjwatson)
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to python-pylxd in Ubuntu.
https://bugs.launchpad.net/bugs/1736454
Title:
pylxd cannot start containers with LXD 2.0.11
Status in python-pylxd package in Ubuntu:
In Progress
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()
>>> client.profiles.get('default') # should produce no warnings
>>> 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 warnings or 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/ubuntu/+source/python-pylxd/+bug/1736454/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list