** Description changed:
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'
+ /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
+ >>> 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 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.
** Also affects: python-pylxd (Ubuntu Xenial)
Importance: Undecided
Status: New
** Changed in: python-pylxd (Ubuntu Xenial)
Status: New => In Progress
** Changed in: python-pylxd (Ubuntu Xenial)
Importance: Undecided => Critical
** Changed in: python-pylxd (Ubuntu Xenial)
Assignee: (unassigned) => Colin Watson (cjwatson)
** Changed in: python-pylxd (Ubuntu)
Status: In Progress => Fix Released
** Changed in: python-pylxd (Ubuntu)
Importance: Critical => Undecided
** Changed in: python-pylxd (Ubuntu)
Assignee: Colin Watson (cjwatson) => (unassigned)
** Patch added: "python-pylxd_2.0.5-0ubuntu1.2.debdiff"
https://bugs.launchpad.net/ubuntu/+source/python-pylxd/+bug/1736454/+attachment/5018816/+files/python-pylxd_2.0.5-0ubuntu1.2.debdiff
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1736454
Title:
pylxd cannot start containers with LXD 2.0.11
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-pylxd/+bug/1736454/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs