yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #85883
[Bug 1922739] Re: AttributeError: 'DataSourceNoCloud' object has no attribute 'vendordata2_raw'
This bug was fixed in the package cloud-init -
21.1-19-gbad84ad4-0ubuntu3
---------------
cloud-init (21.1-19-gbad84ad4-0ubuntu3) hirsute; urgency=medium
* cherry-pick 83f6bbfb: Fix unpickle for source paths missing run_dir
(#863) (LP: #1899299)
* cherry-pick d132356c: fix error on upgrade caused by new vendordata2
attributes (LP: #1922739)
-- James Falcon <james.falcon@xxxxxxxxxxxxx> Mon, 19 Apr 2021 13:41:21
-0500
** Changed in: cloud-init (Ubuntu)
Status: Confirmed => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1922739
Title:
AttributeError: 'DataSourceNoCloud' object has no attribute
'vendordata2_raw'
Status in cloud-init:
Fix Committed
Status in cloud-init package in Ubuntu:
Fix Released
Status in cloud-init source package in Xenial:
Fix Committed
Status in cloud-init source package in Bionic:
Fix Committed
Status in cloud-init source package in Focal:
Fix Committed
Status in cloud-init source package in Groovy:
Fix Committed
Status in cloud-init source package in Hirsute:
Confirmed
Bug description:
=== Begin SRU Template ===
[Impact]
In PR #777, we added 'vendordata2' and 'vendordata2_raw' attributes to the DataSource class, but didn't use the upgrade framework to deal with an unpickle after upgrade. Because of this, anybody upgrading their cloud-init from an older version to 21.1 who hasn't also run `cloud-init clean` will have cloud-init fail with a traceback.
The change here should fix that failure.
[Test Plan]
Launch an instance or install a cloud-init package using version earlier than 21.1-19-gbad84ad4-0ubuntu1 (if downgrading also run `cloud-init clean`).
Upgrade to 21.1-19-gbad84ad4-0ubuntu1 or later, then reboot (without
running `cloud-init clean`).
On un-patched versions, `cloud-init status` will show error, and there
will be a traceback in /var/log/cloud-init.log. Patched versions
should show no error or traceback.
[Where problems could occur]
Any problem here would mean we're continuing to unpickle data incorrectly, thus we'd see similar behavior to the bug we're fixing.
[Other Info]
Pull request: https://github.com/canonical/cloud-init/pull/869
Commit: https://github.com/canonical/cloud-init/commit/d132356cc361abef2d90d4073438f3ab759d5964
A test has also been added upstream and to our CI to prevent these
types of errors from happening in the future:
https://github.com/canonical/cloud-
init/blob/master/tests/integration_tests/test_upgrade.py#L107
== End SRU Template ==
== Original Description ==
On a test LXD VM instance, I see:
2021-04-06 14:05:11,296 - util.py[WARNING]: failed stage init
2021-04-06 14:05:11,302 - util.py[DEBUG]: failed stage init
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 652, in status_wrapper
ret = functor(name, args)
File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 376, in main_init
init.update()
File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 371, in update
self._store_raw_vendordata(self.datasource.get_vendordata2_raw(),
File "/usr/lib/python3/dist-packages/cloudinit/sources/__init__.py", line 506, in get_vendordata2_raw
return self.vendordata2_raw
AttributeError: 'DataSourceNoCloud' object has no attribute 'vendordata2_raw'
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1922739/+subscriptions
References