** Description changed: === 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. + 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 - 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 + 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'
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1922739 Title: 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 -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
