** Description changed: - http://pad.lv/1623570 ==== Begin SRU Template ==== - [Impact] + [Impact] On Azure (and only on Azure), cloud-init utilizes the walinuxagent to do some of the instance initialization. A change to cloud-init to support installation of packages on a systemd system (bug 1576692), exposed an issue in the walinuxagent.service file. The end result is freshly booted instances on azure with the cloud-init fix and the old version of walinuxagent would fail to import ssh keys that were provided to the instance. [Test Case] - * Start an instance on Azure - * upgrade to cloud-init at 0.7.7-31-g65ace7b or better - this is in both xenial-proposed and yakkety. - - * clean up, so it looks like a first boot. - sudo sh -c 'rm -Rf /var/lib/cloud /var/log/cloud-init* /var/lib/waagent/*.crt' - * At this point a reboot would cause failure, and you would see WARN messages in the logs. + * Start an instance on Azure + * upgrade to cloud-init at 0.7.7-31-g65ace7b or better + this is in both xenial-proposed and yakkety. - * upgrade walinuxagent with a fix (2.1.5-0ubuntu2 in yakkety) + * clean up, so it looks like a first boot. + sudo sh -c 'rm -Rf /var/lib/cloud /var/log/cloud-init* /var/lib/waagent/*.crt' + * At this point a reboot would cause failure, and you would see WARN messages in the logs. - * reboot - * ssh back in, - * There should be no WARN in /var/log/cloud-init.log - grep WARN /var/log/cloud-init.log - * There should exist a file /var/lib/waagent/*.crt - * walinuxagent.service should be running - systemctl status walinuxagent.service + * upgrade walinuxagent with a fix (2.1.5-0ubuntu2 in yakkety) + + * reboot + * ssh back in, + * There should be no WARN in /var/log/cloud-init.log + grep WARN /var/log/cloud-init.log + * There should exist a file /var/lib/waagent/*.crt + * walinuxagent.service should be running + systemctl status walinuxagent.service Note, that in event of failure you can still get into the system by providing user-data that populates your ssh keys: - #!/bin/sh - ssh-import-id smoser + #!/bin/sh + ssh-import-id smoser - [Regression Potential] + [Regression Potential] Changing order of things in boot is scary. This is no different. This would in theory allow walinux-agent to start earlier in the boot. In practice, however, it is started by cloud-init.service so it was already running that early in the boot. ==== End SRU Template ==== - - When bringing up the Azure datasource in cloud-init.service, cloud-init tries 'service start walinuxagent'. + When bringing up the Azure datasource in cloud-init.service, cloud-init + tries 'service start walinuxagent'. That previously worked fine, and the agent would start and then would produce the certificate files that cloud-init needed (for ssh keys and things). I found this when testing SRU for 0.7.7-31-g65ace7b-0ubuntu1~16.04.1 but it is likely present also in 0.7.7-31-g65ace7b-0ubuntu1 (yakkety) Now, however we see a log like: Sep 14 14:53:18 smoser0914x [CLOUDINIT] DataSourceAzure.py[DEBUG]: Getting metadata via agent. hostname=smoser0914x cmd=['service', 'walinuxagent', 'start'] Sep 14 14:53:18 smoser0914x [CLOUDINIT] util.py[DEBUG]: Running command hostname with allowed return codes [0] (shell=False, capture=True) Sep 14 14:53:18 smoser0914x [CLOUDINIT] DataSourceAzure.py[DEBUG]: invoking agent: ['service', 'walinuxagent', 'start'] Sep 14 14:53:18 smoser0914x [CLOUDINIT] util.py[DEBUG]: Running command ['service', 'walinuxagent', 'start'] with allowed return codes [0] (shell=False, capture=True) Sep 14 14:53:18 smoser0914x [CLOUDINIT] util.py[WARNING]: agent command '['service', 'walinuxagent', 'start']' failed. Sep 14 14:53:19 smoser0914x [CLOUDINIT] util.py[DEBUG]: agent command '['service', 'walinuxagent', 'start']' failed. Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceAzure.py", line 145, in get_metadata_from_agent invoke_agent(agent_cmd) File "/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceAzure.py", line 452, in invoke_agent util.subp(cmd, shell=(not isinstance(cmd, list))) File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1832, in subp cmd=args) cloudinit.util.ProcessExecutionError: Unexpected error while running command. Command: ['service', 'walinuxagent', 'start'] Exit code: 1 Reason: - Stdout: '' Stderr: " Failed to start walinuxagent.service: Transaction order is cyclic. See system logs for details. See system logs and 'systemctl status walinuxagent.service' for details I believe the relevant change is in 34a26f7f https://git.launchpad.net/cloud-init/commit/?id=34a26f7f59f2963691e36ca0476bec9fc9ccef63 That added multi-user.target to the list of After for cloud-init-final.service. Related bugs: * bug 1576692: fully support package installation in systemd
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1623570 Title: Azure: cannot start walinux agent (Transaction order is cyclic.) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/walinuxagent/+bug/1623570/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs